JavaScript-立即执行函数

JavaScript的立即执行函数是函数在被创建时就被立即执行。

一般情况有俩种形式:

(function () {} ())  这个较好。

(function () {} ) ()

下面来介绍一下这个函数的特点。

函数一旦被执行,那么就不能在被执行了!

eg 1:

            var temp=(function () {
                console.log(1);
            }())
            temp();

结果很明显:输出1后,立即执行函数就已经失去作用了,temp已经与它断开联系了,temp为undefined


 eg 2: 

          (function temp () {
                console.log(1);
            }())
            temp();

结果很明显:输出1后,立即执行函数就已经失去作用了,即使是函数名也失效了


这里提醒一下,立即执行函数一般不写函数名,因为写了也没用!

立即执行函数除上面的特点外和其他的函数一模一样的,这里有个问题,怎么接受参数了?

立即执行函数的另一个()就是这个用处:

计算a+b

           var temp=(function (a,b) {  
             console.log(a+b);  
            }(1,2))  

立即执行函数的原理:

在JavaScript中,首先要明白一点,只有表达式才可以执行!!!

这里介绍一下JavaScript里面函数的定义的形式

1:function temp() { } 这种是函数的声明

2:var temp = function () {} 这种是函数表达式

我现在来看一个问题,我们知道()运算符可以执行函数,前面放上函数名或者函数的引用皆可

那么我们现在看下面俩段代码:

          function temp() {
              console.log(1);
          } ();
          var temp =function () {
              console.log(1);
          } ();

相信你应该知道结果了。

第一种:  低级错误

第二种:

刚刚已经说了只有表达式才可以执行,第一种别人叫函数声明和表达式没有关系!!!

那么我们来看看为啥立即执行函数为什么可以执行?

()嘛!别人是运算符撒,把它变成表达式了

(function () {} ())    外面的括号优先级高,也是先变成表达式在执行!

(function () {} ) ()

那么还有其他的运算符可以吗?当然有

           +function temp() {
              console.log(1);
          } ();
           - function temp() {
              console.log(1);
          } ();
           ! function temp() {
              console.log(1);
          } ();

.....



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值