在许多情况下,如果您将它们遗漏,JavaScript解析器将为您插入分号.我的问题是,你把它们遗弃了吗?
如果您不熟悉规则,则会在Mozilla网站上对分号插入进行描述.这是关键点:
如果第一至第n 个 JavaScript程序形式的令牌是语法上有效,但第一至第n + 1个ST令牌是不与存在n之间的换行符个令牌和第n + 1个ST令牌,则解析器尝试将所述n之间的虚拟分号令牌之后再次解析程序次和第n + 1个ST令牌.
这种描述可能不完整,因为它没有解释@ Dreas的例子.任何人都有完整规则的链接,或者看看为什么这个例子得到一个分号?(我在JScript.NET中尝试过.)
此stackoverflow问题是相关的,但仅涉及特定方案.
我有Javascript Lint设置在vim中进行语法检查,当我有一个语句如
if (i > 0){
i--;
};
Run Code Online (Sandbox Code Playgroud)
它会生成以下警告
test.js|160 warning| empty statement or extra semicolon
Run Code Online (Sandbox Code Playgroud)
我认为最好总是用分号结束语句(见这里).它没有发出错误,但为什么要发出警告?我怎么能改变这个.当我正在寻找合法的警告时,我没有无数的警告.