Javascript странный синтаксис, который работает - но как?

Что означает следующий код? (это не json - это код, который не генерирует ошибку интерпретатором js)

foo: 5

Причина вопроса заключается в следующем. В примерах со стрелками есть пример, показывающий путаницу между синтаксисом json и кодовым блоком:

var func = () => { foo: 1 };

Функция func() возвращает неопределенное значение, и приведенный выше код не вызывает ошибки. Я пытался поместить только код foo: 5 как единственный код в модуль js - и это работает... Я не знаю ни об операторе ':', ни о метках в js.

1 ответ

Решение

Это метка JavaScript: документация здесь.

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

Обратите внимание, что в JavaScript нет оператора goto, вы можете использовать только метки с break или continue.

Пример использования (из MDN)

var itemsPassed = 0;
var i, j;

top:
for (i = 0; i < items.length; i++){
  for (j = 0; j < tests.length; j++) {
    if (!tests[j].pass(items[i])) {
      continue top;
    }
  }

  itemsPassed++;
}
Другие вопросы по тегам