!function main(){
console.log("oK");
}();
等价于
(function main(){
console.log("oK");
})();
不知道function前带感叹号的可以参考下
console.log("oK");
}();
等价于
(function main(){
console.log("oK");
})();
不知道function前带感叹号的可以参考下
2015-08-30
最赞回答 / HZFEStudio
取反是优先级非常高的运算符。当浏览器扫描到"!"后,会去运算之后的语句,从而达到函数自执行的效果,等同于:(function(){console.log(1);}());这样的自执行函数写法。而函数是一定有返回值的,只是没有去获取他。若函数里没有写return,就会默认返回一个值:undefined,获取undefined,那么!function(){'use strict';var obj = {x:1,x:2};}(); 就是 !undefined 了,也就是true。
2015-08-29