Можете ли вы объяснить мне, как использовать метки для операторов, которые взаимодействуют с break: switch, while, do и for.Использование меток в javascript
с примером пожалуйста.
Можете ли вы объяснить мне, как использовать метки для операторов, которые взаимодействуют с break: switch, while, do и for.Использование меток в javascript
с примером пожалуйста.
Обычно, я вижу его в breaking out to outer loops:
var i, j;
dance: for (i = 0; i < 20; i++) {
for (j = 0; j < 20; j++) {
console.log(i+'-'+j);
if (j === 10) { //normally, break only breaks the immediate loop
break dance; //this one breaks the loop labelled as dance
}
}
}
//continue here after i = 0,j = 10
Не используйте этикетки.
Пример:
// no label
while (condition) {
// do something
}
+1 очень ясно ... –
Тот же комментарий, что и с ответом Алнитак ... –
Quouting сети разработчиков Mozilla Language Reference:
Предоставляет оператор с идентификатором, который вы можете обратиться к использованию перерыв или продолжить заявление.
Например, вы можете использовать метку для идентификации цикла, а затем использовать инструкции break или continue, чтобы указать, должна ли программа прерывать цикл или продолжать его выполнение.
Обратите внимание, что они также говорят:
Метки не очень широко используется в JavaScript, так как они делают программы труднее читать понять. Насколько это возможно, избегать использования ярлыков и, в зависимости от случаев, предпочитает вызов функции или бросать ошибку
Это не отвечает на вопрос. Кроме того, зачем ломать
@SamuelRossille Я просто цитирую парней, которые разработали язык в первую очередь, и обратите внимание, что на той же странице _does_ описывается, как его использовать, и, следовательно, отвечает на вопрос. – Alnitak
Я не использую их сам, но мне всегда кажется, что в этом аргументе есть круглость, поскольку во многих случаях единственная причина, по которой они делают код «труднее читать», будет заключаться в том, что люди не используют их и не пропускают точка зрения на код. В этом случае это можно сказать о любой языковой функции: использование этого кода сделает код более трудным для чтения для людей, которые не используют или не понимают эту функцию. Это только что стало формой литургии с течением времени («повторяй за мной ...»). – delicateLatticeworkFever
Вот хороший article на этикетке GOTO в JS. Я никогда не использую логику меток GOTO, поэтому я тоже научился чему-то новому сегодня.
JS код из статьи:
var pastures = getPastures();
var i, pastureLen = pastures.length;
pastureLoop:
for (i = 0; i < pastureLen; i++)
{
var pasture = pastures[i];
var cows = pasture.getCows();
var j, numCows = cows.length;
for (j = 0; j < numCows; j++)
{
var cow = cows[j];
if (cow.isEating())
{ continue pastureLoop; }
}
// No cows were eating, so fire the callback for pasture[i]
pasture.executeCallback(); // or whatever
}
Какие конкретные проблемы вы с? Можете ли вы показать код, который вы не понимаете? –
В чем вопрос? С чем вы столкнулись? – Undefined
Мне никогда не приходилось использовать ярлык в JS-программировании. – Alnitak