首页 > 编程语言 > 详细

JavaScript立即执行函数

时间:2021-04-11 15:59:19      阅读:13      评论:0      收藏:0      [点我收藏+]

即函数在定义后立即被执行

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

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

//语法格式:
//第一种
(function () {
    console.log("立即执行函数")
})();
//第二种  ,w3c建议使用这一种
(function () {
    console.log("javascript")
}());



//例
(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 test() {} 函数表达式:var test = function() {}

? 例:

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

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

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

test是表达式,所以能执行。

+ function test() {
	console.log("123");
}()

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

加了一个”+“,在趋势上要将它转换为数字,就是表达式了,是表达式就能被执行,就会被放弃名字,所以在控制台上执行test()就会报错,这就是立即执行函数。

同样放了 ” + “ ,” - “ ,” !“ 就会放弃函数名字,就会转换为表达式;但是 ” * “ 和 ” / “ 不行,& 和 || 前面放东西也行

例: var test = function () {}

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

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

( function test() { 
	console.log("123"); 
})()

这个被()抱起来的function函数声明变表达式了,就能被外面的最后的() 所执行了

外面的最大的括号是数学运算符,是最先被执行的,其他括号都是有语法意义的,就把函数变表达式了

()也是数学运算符,就能打印 123 ,但是执行 test() 就报错,所以就可以直接不写test()

function test(a , b , c) {
	console.log(a + b + c);
}(1 , 2 , 3)

这样子写理论上不会执行,只写 () 就会被当成执行符,但是写成 (1,2,3) 之后暂时不会被当成运算符,没意义

不会执行,也不会报错,还能调用 test()。

立即执行函数的作用

  • 初始化页面和数据。
  • 创建一个独立的作用域,这个作用域里面的变量外面访问不到(即避免了变量污染)。

JavaScript立即执行函数

原文:https://www.cnblogs.com/allure-xiaoxin/p/14643479.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!