【javascript】里面有了自动分号插入机制 ASI,那还要不要写分号

tech2026-06-14  1

直接运行下面的代码看区别:

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

最新回复(0)