立即执行函数
IIFE - immediately-ivnoked function expression
自动执行,执行完成后立即释放
一个功能性是用作初始化
(function(){
console.log('函数体')
})();
( function(){} () ) w3c建议的
不行执行的
function test(){ consloe,log(1)}() // 语法报错 uncaught syntaxError :
但是
var test - function test(){}( consloe,log(1)) // 可以执行
(function test(){})(); 可以执行
1.一定是表达式才可以()立即执行;在 var a = function () {} ()中,是 = funciton (){} 是一个表达式,类似有 ! function(){ }(); 2&& function(){}() ; + function (){}()
执行完就销毁
let test = function (){ console.log(1) } ()
console,log(test) // undefined 执行完就销毁了
function test(){
}() // 报错的 ,不是表达式
function test() { function test() {}
js引擎为了不报错 (6) // 等于6
理解为这样
}(6) =======》
逗号运算符
let a = (1+3 , 4+ 6) // 10 输出求后面的一个
var a = (
function one (){
return 1
},
function two(){
return '2
)()
// '2' typeOf(a) string
var b = 10
if(function a (){}){ ====> ( function a (){} ) 是一个表达式
b+= typeOf(a) 所以a 是undefined
}
console.log(b) // 10undefined