【javascript】里面有了自动分号插入机制 ASI,那还要不要写分号
程序员文章站
2022-06-14 18:59:52
...
直接运行下面的代码看区别:
let b = 2
let c = 2
let d = 2
let e = 2
a = b + c
(d + e).valueOf()
// 会报错,VM2567:1 Uncaught TypeError: c is not a function
// at <anonymous>:1:9
// 因为这里不会自动插入分号,因为第二行一括号开始,会被误认为是函数
a = b + c;
(d + e).valueOf()
// 4
Brendan Eich创造JavaScript的时候,为了增加让 JS 的断句容错率,顺便加了自动分号插入的机制(Automatic Semicolon Insertion),简称 ASI,这是一个辅助性的功能。但是,除了上述例子“(”开头,在"[" 、"/"、"+"、"-" 前面侯也不会自动加分号,会引起bug,所以最稳妥是加上分号!
另外,如果不写分号,浏览器会自动添加,会消耗一些系统资源
上一篇: Scala基础教程9 -- 嵌套方法