跳转到内容

JavaScript/自动分号插入

来自维基教科书,开放的书籍,开放的世界




自动分号插入 (ASI)

C 族 语言中,分号表示语句的结束。与其他类似 C 的语言不同,JavaScript 没有强制要求使用分号。相反,分号是可选的,解释器会添加缺少的分号,通常在行尾,以终止语句。这样做,它会考虑 复杂的规则。这可能会与预期的目的发生冲突。

如果您在语句末尾没有写分号,则必须注意出现问题的状况。以下是一些避免问题的经验法则。但还有很多其他规则。

  1. returnthrowyield 关键字后的表达式必须与关键字位于同一行。
  2. breakcontinue 后的标签标识符必须与关键字位于同一行。
  3. 如果一行以 ([`+-/ 开头,则在上一行末尾加上分号。
    示例
输入代码 .. .. 解释为 预期代码
return
2a + 1
return;
2a + 1;
return 2*a + 1;
function getObject() {
  return
  {
    // some lines
  }
}
function getObject() {
  return;
  {
    // some lines
  };
}
function getObject() {
  return {
    // some lines
  };
}
i
++
i;
++;
i++;


在第一种情况下,程序员想要返回 2*a + 1;相反,代码返回了 undefined。类似地,在第二种情况下,程序员想要返回由大括号 {} 包含的行,但代码返回了 undefined。由于 JavaScript 的这种奇特性,建议始终不要在语句中换行,也不要将左大括号放在单独的一行。

另请参阅

[编辑 | 编辑源代码]
华夏公益教科书