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

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

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

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

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

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

    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

猜你喜欢

转载自www.cnblogs.com/iamsmiling/p/10672270.html