js立即执行函数

定义:此类函数没有声明,在一次执行过后即释放(被销毁)。适合做初始化工作。

针对初始化功能的函数:只想让它执行一次的函数

立即执行的函数也有参数,也有返回值,有预编译

(function (){ //写成(function abc(){}())也调用不到,执行完后,立即释放

var a = 123;

var b = 234;

console.log(a + b);

}())

答案:357

(function (a, b, c){

console.log(a + b + c * 2);

}(1, 2, 3))这一行里面的(1,2,3)是实参

var num = (function (a, b, c){

var d = a + b + c * 2 – 2;

return d;

}(1, 2, 3))

答案 num = 7

立即执行函数的两种写法

一(function (){}()); //在 W3C 建议使用这一种

二(function (){})();

只有表达式才能被执行符号执行

能被执行符号执行的表达式,这个函数的名字就会被自动忽略(放弃名字)

能被执行符号执行的表达式基本上就是立即执行函数

函数声明和函数表达式是两个东西,虽然都能定义函数

函数声明:function test ( ){} 函数表达式:var test = function( ){}

function (){

var a = 123;

}()

答案这是函数声明,不能执行,报语法错误,因为只有表达式才能被执行符号执行

function test(){

console.log(‘a’);

}

答案这也是函数声明

function (){

var a = 123;

}

test();

答案 test();就是表达式,所以能执行

var test = function (){

console.log(‘a’);

}()

答案这是表达式,可以被执行,此时在控制台执行 test 的结果是 undefined,这个函

数的名字就会被放弃

+ function test(){

console.log(‘a’);

}()

答案加了个“正“,在趋势上要把他转换成数字,就是表达式了,既然是表达式就

能被执行,就会放弃名字,此时 console.log (test),就会报错;这就是立即执行函数

同样放了正号,负号,!就会放弃函数名字,转换成表达式;但是*和/不行,&&||前

面放东西也行

var test = function (){}

其中= function (){}把 function 赋到 test 里面去叫表达式,var test 是声明

在执行时,会放弃这个函数,储存到 test 里面储存引用,让这个 test 恢复到被声明的

状态

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值