fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

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

Open haizhilin2013 opened this issue 5 years ago • 6 comments

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

haizhilin2013 avatar Sep 22 '19 20:09 haizhilin2013

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

cxwht avatar Sep 22 '19 22:09 cxwht

;相当于上一个语句的结束,可以防止在js打包的时候,某一个js文件末尾未加;导致两个js文件被判定为一条语句。 也可以替换为void

LinStan avatar Sep 23 '19 01:09 LinStan

分号是为了和前面的代码隔开,js可以用换行分隔代码,但是合并压缩多个js文件之后,换行符一般会被删掉,所以连在一起可能会出错,加上分号就保险了 防止多文件集成成一个文件后,高压缩出现语法错误,

wuliTaoLeo avatar Sep 23 '19 02:09 wuliTaoLeo

if (!args) return var a func() !item && fu() func() [].call() var a = 1 a += 1 以上情况都会报错

forever-z-133 avatar Sep 23 '19 03:09 forever-z-133

  • 作用:防止压缩后,当前一个js文件末尾没有分号时,浏览器会把它们当成一条语句处理,引起错误
  • 可以用void ! + ~ 代替

vkboo avatar Sep 23 '19 07:09 vkboo

加分号的作用是为了防止多个文件压缩后,当前一个js文件末尾没有分号时,避免引起各文件没有加分隔符而被浏览器误认为一条语句的错误。 可以用void来代替

xiaoqiangz avatar Jul 27 '22 08:07 xiaoqiangz