我很抱歉发布一个重复的问题,(我知道,这里有一堆类似的题目问题),但没有任何已经存在的问题似乎适合我的案例。冒号在这个JavaScript代码片段(而不是对象文本)中意味着什么?
总之,什么是结肠在这里做的:
<script>
'use strict';
foo: 1;
//whatever else
</script>
我认为这是一个语法错误,但事实并非如此。我认为这不是一个标签,因为添加一条线break foo;
会抛出Uncaught SyntaxError: Undefined label 'foo'
(尽管a doc page暗示了这一点,它是一个标签)。
我想这是JavaScript语法的一些新增内容,因为我从来没有听说过这样使用冒号。
如果有人想知道,为什么我问这个,这是我的解释:我读an MDN doc page并且有一个例子:
var func =() => { foo: 1 };
// Calling func() returns undefined!
这表明,在这种情况下,大括号被视为块分隔符而不是对象文字。所以我认为,不知何故,foo: 1
本身必须在语法上合法。事实确实如此。
有a question,它应该涵盖JavaScript中每个冒号的用法,但它没有提到这一点,也没有答案。
很确定它是一个标签。我怀疑你用'break foo;'得到了这个错误,因为'foo'不是一个你可以打破的循环。 – Andy
为什么downvote?一个人不知道箭头功能,他试图理解,问一个干净的问题,并得到明确的答案。 – DanteTheSmith