在很多情况下,如果将它们排除在外,JavaScript解析器会为你插入分号。我的问题是,你把它们排除在外了吗?
如果不熟悉规则,那么在Mozilla网站上有一个分号插入的说明。关键是:
如果第一至第n 个 JavaScript程序形式的令牌是语法上有效,但第一至第n + 1个ST令牌是不与存在n之间的换行符个令牌和第n + 1个ST令牌,则解析器尝试将所述n之间的虚拟分号令牌之后再次解析程序次和第n + 1个ST令牌。
这种描述可能不完整,因为它没有解释@Dreas的例子。任何人都有一个链接到完整的规则,或看看为什么这个例子得到一个分号?(我在JScript.NET中试过。)
发布于 2018-03-14 16:22:31
是的,在JavaScript中的每个语句之后都应该使用分号。
发布于 2018-03-14 17:16:09
在没有分号的情况下中断的一种不明确的情况:
// define a function
var fn = function () {
//...
} // semicolon missing at this line
// then execute some code inside a closure
(function () {
//...
})();
这将被解释为:
var fn = function () {
//...
}(function () {
//...
})();
https://stackoverflow.com/questions/-100007619
复制相似问题