JavaScript 语法 foo: 是什么意思?

IT技术 javascript
2021-03-07 21:17:54

下面的代码是什么意思?(它不是 json - 它是不会被 js 解释器产生错误的代码)

foo: 5

提出问题的原因如下。在箭头函数示例中,有一个显示了 json 和代码块语法之间的混淆:

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

func() 返回 undefined 并且上面的代码不会失败。我试图将 foo: 5 代码作为 js module中的唯一代码 - 它有效......我不知道 ':' 运算符也不知道 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++;
}
@dzilbers 如果您继续阅读文档,它会指出您可以使用块(部分:“使用带中断标记的块”)甚至函数。Javascript 解析器将期望一个表达式跟在label. 除非您处于严格模式,否则它将限制可以遵循的内容。
2021-05-09 21:17:54
我现在查看了 MDN 和 ECMA 规范中关于标记语句的内容。这很奇怪(如果没有任何理由使用它们,为什么不与循环或块相邻的标签完全可以接受?)但这是真的......
2021-05-10 21:17:54
根据引用的文档,JS 标签仅与循环相关。在我的示例中,标签后面没有循环。但它仍然是合法的代码。
2021-05-16 21:17:54