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() {} )()