js代码代码前面的分号是什么意思?

在学习过程中看到下面这么几行代码,觉得不是很理解,为什么分号在前面,不应该是放在函数执行语句的后面?

;(async () => {
  await connect()
})()

在上网查找资料后,才知道这样写是出于以下原因:
避免多个JS文件合并压缩的时候防止文件之间没有;分隔导致错误。

比如存在两个文件分别是a.js和b.js***
a.js

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
    var plugin = true

b.js

    (function($){
   //dosomething
    })();

如果使用压缩工具之后会变成

var plugin1 = true(function($){})();

这样是会报错的TypeError: true is not a function

再比如存在两个文件c.js和d.js*
c.js**

    ( function() {} )()

d.js

    ( function() {} )()

如果使用压缩工具之后会变成

    ( function() {} )()( function() {} )()

这样就出了问题,所以为了避免这个问题,你可以在 b.js 最前面加一个分号

    ( function() {} )();( function() {} )()

参考链接

https://zhidao.baidu.com/question/428750047121231572.html

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄