fe-interview
fe-interview copied to clipboard
[js] 第160天 有些js库习惯在代码开头处添加分号有什么作用呢?除了分号还可以换成别的吗?
第160天 有些js库习惯在代码开头处添加分号有什么作用呢?除了分号还可以换成别的吗?
js 文件结束 处是 没有 分号的。若几个 js 连在一起时,2个 js 连接处 会发生语法上的混淆。 开头加 ; 用于分隔, 可以避免多文件 压缩 在一起时 引起的 错误。 分号和分号放在一起也没问题,相当于 “空语句”。
;相当于上一个语句的结束,可以防止在js打包的时候,某一个js文件末尾未加;导致两个js文件被判定为一条语句。 也可以替换为void
分号是为了和前面的代码隔开,js可以用换行分隔代码,但是合并压缩多个js文件之后,换行符一般会被删掉,所以连在一起可能会出错,加上分号就保险了 防止多文件集成成一个文件后,高压缩出现语法错误,
if (!args) return var a
func() !item && fu()
func() [].call()
var a = 1 a += 1
以上情况都会报错
- 作用:防止压缩后,当前一个js文件末尾没有分号时,浏览器会把它们当成一条语句处理,引起错误
- 可以用
void
!
+
~
代替
加分号的作用是为了防止多个文件压缩后,当前一个js文件末尾没有分号时,避免引起各文件没有加分隔符而被浏览器误认为一条语句的错误。 可以用void来代替