只有表达式才能被执行符号执行 执行符号是一对括号()
立即执行函数只被执行一次就销毁
能被执行符号执行的函数表达式将放弃函数的名字
var a = function (){
console.log(1)
}();
console.log(a)//undefined 因为函数被立即执行了,执行完马上被销毁,也没有任何的返回值(如果函数没有返回值,默认返回undefined),
所以返回undefined
立即执行函数的几种写法
(function(){}())
(function(){})()
+ function(){}()
- function(){}()
! function(){}()
//还可以用 || && 不过要配合使用
var a = 1;
a && function(){
console.log(2)
}() //2
var flag = false;
flag || function (){
console.log(3)
} //3
(function test(){}())//这里test写不写无所谓,函数名会被放弃