Использование меток в JavaScript

Можете ли вы объяснить мне, как использовать метки в операторах, которые взаимодействуют с break: switch, while, do и for.

с примером, пожалуйста.

 Undefined28 мая 2012 г., 16:13
В чем вопрос? С чем у тебя проблемы?
 Andrew Whitaker28 мая 2012 г., 16:13
Какая у тебя проблема? Можете ли вы показать код, который вы не понимаете?
 Trevor28 мая 2012 г., 16:14
Охххххх, я никогда не знал, что они существуют в JS. Это какgoto заявление. Не используйте их.
 Alnitak28 мая 2012 г., 16:16
олоса @ down немного резкие - это может быть не очень хорошо написанный вопрос, и ярлыки вполне могут быть рядом только сeval во зле, но нет ничего плохого в том, что он спрашивает.
 Alnitak28 мая 2012 г., 16:13
Мне никогда не приходилось использовать метку в JS-программировании.

Ответы на вопрос(4)

Ссылка на язык:

Предоставляет оператор с идентификатором, на который вы можете ссылаться, используя оператор break или continue.

Например, вы можете использовать метку для идентификации цикла, а затем использовать операторы break или continue, чтобы указать, должна ли программа прерывать цикл или продолжать его выполнение.

Обратите внимание, что они также говорят:

Labels не очень часто используются в JavaScript, так как они затрудняют чтение программ. Насколько это возможно, избегайте использования меток и, в зависимости от ситуации, предпочитайте вызывать функции или выдавать ошибку

 Alnitak28 мая 2012 г., 16:19
@ SamuelRossille Я просто процитирую парней, которые разработали язык в первую очередь - и обратите внимание, что та же страница Делает опишите, как его использовать, и, следовательно, ответьте на вопрос.
 Samuel Rossille28 мая 2012 г., 16:17
Это не отвечает на вопрос. Кроме того, зачем ломать <label>; быть более неясным, чем сломаться; ? Проблема в разрыве, а не в ярлыках.
 delicateLatticeworkFever28 мая 2012 г., 16:21
Я сам ими не пользуюсь, но мне всегда кажется, что в этом аргументе есть округлость, поскольку во многих случаях единственная причина, по которой они затрудняют чтение кода, заключается в том, что люди его не используют и пропускают смысл при взгляде на код. В этом случае это можно сказать о любой языковой функции: ее использование затруднит чтение кода для людей, которые не используют или не понимают эту функцию. Со временем это стало формой литургии («повтори за мной ...»).
 Alnitak28 мая 2012 г., 16:23
@ Златовласка а Компетентный программист действительно не будет иметь проблем с этой концепцией. Однако компетентный программист не должен был бы спрашивать в первую очередь ...

Обычно я вижу это в вырывается на внешние петли:

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
 Joseph28 мая 2012 г., 16:34
@ Alnitak обновлен
 Alnitak28 мая 2012 г., 16:33
a «метка кейса» и метка перерыв / продолжениеочен разные вещи

стать на ярлыке 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
 }

Пример

// no label
while (condition) {
    // do something
}
 Samuel Rossille28 мая 2012 г., 16:21
Тот же комментарий, что и в ответе Алнитак ...
 Antti Huima28 мая 2012 г., 16:15
+ 1 очень ясно ...

Ваш ответ на вопрос