立即执行函数

立即执行函数

定义:此类函数没有声明,在一次执行过后即释放(被销毁),适合做初始化工作。
针对初始化功能的函数:只想让他执行一次的函数。
立即执行函数也有参数,也有返回值,有预编译。

例如:

		(function () {
            var a = 123;
            var b = 234;
            console.log(a + b);
        }())

可以执行,357
例如:

  		(function (a, b, c) {
            console.log(a + b + c * 2);
        }(1, 2, 3))//这一行是实参

可以执行,9
立即执行函数的两种写法:

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

只有表达式才能被执行符号执行
能被执行符号执行的表达式,这个函数的名字会被自动忽略(放弃名字)。
能被执行符号执行的表达式基本上就是立即执行函数
函数声明和函数表达式是两个东西,虽然都能定义函数
函数声明:function test(){}函数表达式:var test = function(){ }

例如:

 		function () {
            var a = 123;
        }()

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

		function test () {
            console.log('a')
        }

这也是函数声明
例如:

		function test () {
            var a = 123
        }
        test();

这是函数表达式所以能执行
例如:

 		var test = function () {
            console.log('a')
        }()

这是表达式,可以被执行,此时在控制台执行test的结果是undefined,这个函数的名字会被抛弃

  		+ var test = function () {
            console.log('a')
        }()

加了个‘ 正 ’,在趋势上要把它转换成数字,就是表达式了,既然是表达式就能被执行,就会放弃名字,
console.log(test),就会报错,这就是立即执行函数,同样放了正号,负号 ,!就会放弃函数名字,转换成表达式,但是 * 和 / 不行,&& 和 || 前面放东西也行

例如:

		(function test () {
            console.log('a');
        })()

这个被()包起来的function函数声明变成表达式了,就能被外面的()执行
例如:

		(function test () {
            console.log('a');
        }())

最外面的大括号是数学运算符号,是最先被执行,其余的括号都是有语法意义的,
就把函数变表达式了,()也是数学执行符,能打印a,但是执行test就会报错,所以干脆不写test了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值