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

posted @ 2019-04-08 18:10  丝血反杀闰土的猹007  阅读(1154)  评论(0)    收藏  举报