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或一个模块,然后自动插入分号。
遇到某些语法产生所允许的标记,但是产生是受限产生,并且标记将是紧随注解之后的终端或非终端的第一个标记。