Приношу извинения за публикацию дублирующего вопроса (я знаю, что здесь есть куча вопросов с похожими названиями), но ни один из уже присутствующих вопросов не подходит для моего случая.
Короче говоря, что здесь делает двоеточие:
<script>
'use strict';
foo: 1;
//whatever else
</script>
Я предполагал, что это синтаксическая ошибка, но это не так. И я думаю, что это не ярлык, поскольку добавление строки break foo;
выдает Uncaught SyntaxError: Undefined label 'foo'
(хотя документ страница предполагает именно это, что это ярлык).
Я предполагаю, что это недавнее дополнение к синтаксису JavaScript, так как я никогда не слышал о таком использовании двоеточия.
Если кому-то интересно, почему я это спрашиваю, вот мое объяснение: я читал страница документа MDN и пример:
var func = () => { foo: 1 };
// Calling func() returns undefined!
Это показывает, что фигурные скобки в этом случае рассматриваются как разделители блоков, а не литерал объекта. Поэтому я предположил, что каким-то образом foo: 1
само по себе должно быть синтаксически допустимым. И это действительно так.
Существует вопрос, который должен охватывать каждое использование двоеточия в JavaScript, но он не упоминает об этом, и ни один ответ не делает этого.
break foo;
, потому чтоfoo
- это не цикл, из которого вы можете выйти. - person Andy   schedule 04.10.2017