定义
此类函数没有声明,在一次执行过后即释放。适合做初始化工作。
//在全局范围 定义一个 函数b
function b(){
}
//除非等到 JavaScript 执行完 否则 函数b永远得不到释放 占用空间
立即执行函数
针对初始化 功能的函数
(function (){
console.log('立即执行函数')
}())
//执行一遍就没了
//参数
(function (a){
console.log(a)
}(1))
//返回值
var add = (function (a,b){
return a+b
}(1,2))
console.log(add);//3
//除了一执行完就销毁,其他和正常函数没有任何区别
深入
只有表达式才能被执行符号执行
//2种官方写法
(function (){}()); //w3c建议第一种
(function (){})();
function test() { //函数声明
var a = 123;
}
//函数声明 不能被执行符号'()'执行
//function test() {
// var a = 123;
//}() //报错
//test //表达式
test();//所以可以调用
//函数表达式 可以执行
var tes = function (){
console.log('函数表达式')
}()
能被执行符号执行的表达式,这个函数的名字就会被自动忽略
这个函数被销毁了
var test = function(){
console.log('test')
}
// test还代表函数
var test = function(){
console.log('test')
}()
// test就不在代表函数了
// 加+减-非!
+ function test(){
console.log('tes');
}()
例外情况
//不报错 也不执行
function test(a,b,c){
console.log(a+b+c)
}(1,2,3)
//会被解析为
function test(a,b,c){
console.log(a+b+c)
}
(1,2,3)