首页 > 解决方案 > do-while 语句的 Javascript 自动分号插入

问题描述

从 ES6 开始,为自动分号插入规则 1 添加了一个新的案例:

前一个标记是 ),然后插入的分号将被解析为 do-while 语句 (13.7.2) 的终止分号。

这允许人们避免行终止并编写丑陋的代码,例如:

do {} while (false) var a = 42

这条规则背后的理由是什么?一些有用的用例?

标签: javascriptecmascript-6automatic-semicolon-insertion

解决方案


我很确定 ES2015 中添加的“案例”只是为了标准化浏览器已经实现的规则,以便与编写得非常糟糕(或奇怪地缩小)的脚本兼容。它并不完全是一个功能,它只是对规范的调整,以符合浏览器已经在做的事情。

例如,您的代码片段在 2013 年发布的 IE11 中运行:

do {} while (false) var a = 42;
console.log('no parse errors');


推荐阅读