JS匿名函数之函数表达式与立即执行函数

匿名函数是什么?和具名函数有什么区别?让我为大家介绍一下吧!
没有名字的函数,无法直接使用

一.函数表达式

将匿名函数赋值给一个变量,并且通过变量名去调用,我们将这个称为函数表达式
语法:

    let fun = function(){}
    let fun = function(){
        console.log("我是函数表达式")
    }
    fun() //调用

我们传入参数怎么传

    let fun = function (x, y) {
        console.log(x + y) //3
    }
    fun(1,2)

函数表达式和具名函数的不同点
1.具名函数的调用可以写到任何位置

    fun()
    function fun(){
        console.log(1) //1
    }

2.函数表达式必须先声明函数表达式,后调用

    // 报错 Cannot access 'fun' before initialization
    // 在初始化之前无法访问'fun'
    fun(1,2)
    let fun = function (x, y) {
        console.log(x + y)
    }

二.立即执行函数

使用场景:避免全局变量之间的污染
语法:

    // 第一种
    (function(){}());
    // 第二种
    (function(){})();

注意:立即执行函数要加分号

    (function(){}())
    // 报错 因为()后面还是()没有结束
    (function(){})();

第二个小括号相当于调用函数
传入参数
第一种写法:

    (function (x, y) {
        console.log(x + y) //3
    })(1, 2)

第二种写法:

    (function (x, y) {
        console.log(x + y) //3
    }(1, 2))

立即执行函数注意事项
1.无需调用,立即执行,其实本质已经调用了
2.多个立即执行函数之间用分号隔开

感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!

你可能感兴趣的:(javascript,开发语言,ecmascript)