JavaScript立即执行函数

立即执行函数

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

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

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

//语法格式:
//第一种
(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 () {

​ var a = 123;

​ }()

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

例: function test() {

​ var a = 123;

​ }

​ test();

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

例: var test = function () {

​ console.log(“a”)

	 }()

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

例: + function test() {

​ console.log(“123”);

​ }()

加了一个”正“,在趋势上要将它转换为数字,就是表达式了,即是表达式就能被执行,就会被放弃名字,所以在控制台上执行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 。

立即执行函数的作用

  • 初始化页面和数据。
  • 创建一个独立的作用域,这个作用域里面的变量外面访问不到(即避免了变量污染)。
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页