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

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

foo: 5

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

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

Функция func() возвращает undefined, и приведенный выше код не работает. Я попытался поместить только код 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++;
}