立即执行函数

最近看JS高级教程,几次遇到立即执行函数这个名词,对小白来说,不懂这是什么,于是本着不懂就问的原则我去查了查这个立即执行函数。

var rob = function(nums) {
    if(nums.length === 1){
        return nums[0];
    }
    else if(nums.length === 2){
        return Math.max(nums[0],nums[1]);
    };
};

上面这种写法,我们使用函数表达式初始化了一个函数。另一种就是使用函数声明来定义函数,如下:

function sum (num1, num2){
  return numm1 + num2;
}

上面两个示例写的函数还并没有执行,为什么呢?因为我们只是定义了一个函数,要想使用函数就要调用函数,才会执行这个函数。如下

sum (1,2);
rob([7,8]);

那么立即执行函数呢,其实也是需要定义函数再调用的,不同的是,立即执行函数在定义时使特殊语法告诉了解释器,这函数需要立即执行。其实这个特殊语法呢,只是将我们调用函数和定义函数放在了一起,为了保证语法不出错加上了一层()。
即立即执行函数的调用方式通常是将函数表达式、它的调用操作符、分组操作符放到一个括号内。
使用函数声明时以下写法都是正确的

(function foo(){/*...*/}());

(function foo(){/*...*/})();

!function foo() {/*...*/}();

+function foo() {/*...*/}();

-function foo() {/*...*/}();

~function foo() {/*...*/}();

如果使用函数表达式,那么外层括号就不需要了,如下写法都是正确的:

void function(){/*...*/}();

var add = function(){/*...*/}();

下面就是我做实验的例子截图了!
在这里插入图片描述
函数定义不会执行

在这里插入图片描述
写成立即执行函数后就发现函数立刻就被调用了
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值