在许多情况下,JavaScript 解析器会为您插入分号,如果您将它们排除在外。我的问题是,你把它们排除在外了吗?
如果您不熟悉规则,Mozilla 站点上有关于插入分号的说明。这是关键点:
如果第一至第n个JavaScript程序形式的令牌是语法上有效,但第一至第n + 1个ST令牌是不与存在n之间的换行符个令牌和第n + 1 ST令牌,则解析器试图插入n个令牌之间的虚拟分号后再次解析程序次和第n + 1 ST令牌。
该描述可能不完整,因为它没有解释@Dreas 的示例。任何人都有完整规则的链接,或者看看为什么这个例子有一个分号?(我在 JScript.NET 中尝试过。)
这个stackoverflow问题是相关的,但只讨论了一个特定的场景。