JavaScript 的自动分号插入 (ASI) 规则是什么?
JavaScript 的自动分号插入 (ASI) 用于插入缺失的分号。以下语句受自动分号插入的影响:
empty statement var statement expression statement do-while statement continue statement break statement return statement throw statement
规则在以下规范中:
- 当从左到右解析脚本或模块时:如果遇到语法规则的任何产生式都不允许的标记,则仅当以下一个或多个条件为真时,才会在有问题的标记之前自动插入分号:
- 有问题的标记是 }。
- 前一个标记是 ),并且插入的分号随后将被解析为 do-while 语句的终止分号 (13.7.2)。
- 遇到输入标记流的末尾,因此解析器无法将输入标记流解析为一个完整的 ECMAScript 或模块,则会自动插入分号。
- 遇到语法规则的一些产生式允许的标记,但该产生式是受限的产生式,并且该标记将是注释后紧跟的终端或非终端的第一个标记。
广告