chenzhicai
2016-02-01 10:34
!function(){
var localData = "localData here";
document.addEventListener('click',
function(){
console.log(localData);
});
}();
这个问题老师回答过了...http://www.imooc.com/qadetail/70621
不仅可以用!,还可以用+, -, ~都可以。
解释器在解释一个语句时,如果以function开头,就会理解为函数声明。
而前面加一个!可以让解释器理解为函数表达式,这样就可以立即调用了。
例如:
!funciton() {
}();
而省略了!的话:
function() {
}();
就会理解为函数声明,而函数声明没有名字会报错。如果有函数名:
function f() {
}();
还是会报错,因为function f(){}函数声明会被前置,相当于:
function f(){}
(); // 这里报错
防止受到其他一些方法的影响!
JavaScript深入浅出
281098 学习 · 1048 问题
相似问题