Fe-interview: [js] 第160天 有些js库习惯在代码开头处添加分号有什么作用呢?除了分号还可以换成别的吗?

Created on 22 Sep 2019  ·  5Comments  ·  Source: haizlin/fe-interview

第160天 有些js库习惯在代码开头处添加分号有什么作用呢?除了分号还可以换成别的吗?

js

Most helpful comment

js 文件结束 处是 没有 分号的。若几个 js 连在一起时,2个 js 连接处 会发生语法上的混淆。
开头加 ; 用于分隔, 可以避免多文件 压缩 在一起时 引起的 错误。
分号和分号放在一起也没问题,相当于 “空语句”。

All 5 comments

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 ! + ~ 代替
Was this page helpful?
0 / 5 - 0 ratings