Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript语法foo:是什么意思?_Javascript - Fatal编程技术网

JavaScript语法foo:是什么意思?

JavaScript语法foo:是什么意思?,javascript,Javascript,下面的代码是什么意思?(它不是json——它是不会由js解释器生成错误的代码) 提出这个问题的原因如下。在arrow函数示例中,有一个示例显示了json和代码块语法之间的混淆: var func = () => { foo: 1 }; func()返回undefined,上述代码不会失败。我试着把foo:5代码作为js模块中唯一的代码-它可以工作。。。我不知道“:”操作符,也不知道js中的标签。它是一个JavaScript标签: 您可以使用标签标识循环,然后使用break或continu

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

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

var func = () => { foo: 1 };
func()返回undefined,上述代码不会失败。我试着把foo:5代码作为js模块中唯一的代码-它可以工作。。。我不知道“:”操作符,也不知道js中的标签。

它是一个JavaScript标签:

您可以使用标签标识循环,然后使用break或continue语句指示程序应该中断循环还是继续执行循环

请注意,JavaScript没有goto语句,您只能使用带有break或continue的标签

示例用法(来自MDN)

var itemsPassed=0;
varⅠ,j;
顶部:
对于(i=0;i
这是一个标签。就这些。根据引用的文档,JS标签可能与循环相关。在我的示例中,标签后面没有循环。但它仍然是法律代码。@dzilbers如果您继续阅读文档,它会声明您可以使用块(部分:“使用带中断的标记块”)甚至函数。Javascript解析器希望表达式跟随
标签
。除非您处于严格模式,否则在这种情况下,它将限制可以遵循的内容。我现在已经研究了MDN和ECMA规范中关于标记语句的内容。这很奇怪(如果没有任何理由使用,为什么不与循环或块相邻的标签是可以接受的?)。。。
var func = () => { foo: 1 };
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++;
}