我们有时候会在自执行函数中看到这样的代码
;(function(){ //我们的代码。。 alert('Hello!'); })();
!(function(){ //我们的代码。。 alert('Hello!'); })();
加;或!的原因就是防止之前的代码没加分号,解析报错,我们的代码无法正常执行。
var foo=function(){ //别人的代码 }//注意这里没有用分号结尾 //开始我们的代码。。。 (function(){ //我们的代码。。 alert('Hello!'); })();
原因是我们用来充当自调用匿名函数的第一对括号与上面别人定义的函数相连,因为中间没有分号,我们的代码无法正常解析了,所以报错。