欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【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,所以最稳妥是加上分号!
另外,如果不写分号,浏览器会自动添加,会消耗一些系统资源