1.防止多文件集成成一个文件后,高压缩出现语法错误。
2.这是一个匿名函数,一般js库都采用这种自执行的匿名函数来保护内部变量 (function(){})()。
3.因为undefined是window的属性,声明为局部变量之后,在函数中如果再有变量与undefined作比较的话,程序就可以不用搜索undefined到window,可以提高程序性能。
通常是用在立即调用之前。但是并不是因为他是立即调用函数,而是为了文件合并的安全
比如你有两个文件,a.js 和 b.js,里面都是一个立即调用函数:
a.js:( function() {} )()
b.js:( function() {} )()
如果你在构建过程中把两个文件压缩之后连接到一起,就变成了
( function() {} )()( function() {} )()
这样就出了问题,所以为了避免这个问题,你可以在 b.js 最前面加一个分号。
( function() {} )()😭 function() {} )()
很多第三方 JS 库需要考虑各种被使用的情况,所以前面可能会写个分号。
;(function($,window,document,undefined){})(jQuery,window,document)
1.自调函数(function(){})()
2.好处是不会产生任何全局变量,提高性能或者兼容性。缺点是无法重复执行,适合只执行一次性或初始化的任务。
3. “;”分号作用:防止多个文件压缩合并以为其他文件最后一行语句没加分号
浙公网安备 33010602011771号