js的自动分号插入
在书写js代码时,语句末尾的分号是可以不写的.我最初以为,js解释器会自动将回车识别为语句的结束.但事实并不是这样. js拥有”自动分号插入机制”,简称ASI.而且,回车符在解释器眼中只是空白. 有关ASI的原则,这里简单列举一下
插入分号的情况
- 新行并入当前行将构成非法语句,自动插入分号.
- 在continue,return,break,throw后自动插入分号
- ++、–后缀表达式作为新行的开始,在行首自动插入分号
- 代码块的最后一个语句会自动插入分号
不插入分号的情况
- 新行以
( [ /
开始 - 新行以
* - + %
开始 - 新行以
, .
开始
所以,为了防止ASI导致代码出错,就需要在上述不插入分号的情况中,手动在行首加入分号. 下面是 element-plus
源码中的行首分号.
1
2
3
4
5
;(main as SFCWithInstall<T>).install = (app): void => {
for (const comp of [main, ...Object.values(extra ?? {})]) {
app.component(comp.name, comp)
}
}
This post is licensed under CC BY 4.0 by the author.