立即执行函数
立即执行函数: 此类函数没有声明,在一次执行过后即释放。适合做初始化工作,因为执行之后会直接被销毁 (函数有的所有属性它全有)
形式:(function (可输入形参){
return //可以有返回值
}(可输入实参))
注意: 当一个括号把函数括起来时,这个函数就会变为表达式,并且定义的函数名将不会存在,其返回的值为字符串形类型的undefined。
eg:if( function test (){} ) {} //其中的function test (){} 就变为了表达式
可变成立即执行函数的方法:
注意: 只有表达式才能被执行符号执行
执行符号:()
function test (){ //函数声明 不可以被执行符号执行
var a = 123;
}
1. 能被执行符号执行的表达式,这个函数的名字就会被自动忽略(能被执行符号执行的表达式,基本上就成了立即执行函数)
var test = function (){ //函数表达式 可以被执行符号执行
console.log('a');
}()
2. 函数声明前加上 +、-、!、&&、||等,都可以成为立即执行函数,但&&、|| 前要加东西
注: *、/ 不可以 因为+、- 代表正负
1> + function test (){
var a = 123;
}()
2> - function test (){
var a = 123;
}()
3> ! function test (){
var a = 123;
}()
3. ()也是数学计算符
1> (function test (){
var a = 123;
console.log(a)
})()
2> (function test (){
var a = 123;
console.log(a)
}())