标签: 函数表达式

  • 函数声明、函数表达式、匿名函数

    函数声明

    function func() { console.log('this is a function') };
    

    首先使用 function 关键字声明一个函数,再执行一个函数名,叫函数声明。

    函数表达式

    let func = function() { console.log('this is a function') };
    

    使用 function 关键字声明一个函数,但未给函数命名,将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。

    匿名函数

    function() { console.log('this is a function') };
    

    使用 function 关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。

    函数声明和函数表达式区别

    1、JavaScript 引擎在解析 JavaScript 代码时会“函数声明提升”当前执行环境(作用域)上的函数声明,而函数表达式必须等到 JavaScript 引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式。

    2、函数表达式后面可以加括号立即调用该函数,函数声明不可以,只能以 func() 形式调用。

    我们看一下下面的例子就会明白

    函数声明

    func(); //正常输出this is a function
    function func() {
        console.log('this is a function') 
    }; 
    

    函数表达式

    func();// Uncaught SyntaxError: Invalid or unexpected token
    //函数表达式报错,func未保存对函数的引用,函数调用需放在函数表达式后面
    var func = function() { 
        console.log('this is a function') 
    };
    

    版权声明:本文为CSDN博主「xu_song」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xu_song/article/details/107077675

  • 高阶函数

    高阶函数可以被简单理解为函数的高级应用,JavaScript函数可以被当来对待,基于这个特性实现函数的高级应用。

    是 JavaScript 中的数据,如数值字符串布尔对象等。

    函数表达式

    • 函数也是数据
    • 把函数赋值给变量
    let abc = function(){}
    
    • 普通函数的声明与调用无顺序限制,推荐做法先声明再调用
    • 函数表达式必须要先声明再调用

    回调函数

    如果将函数 A 做为参数传递给函数 B 时,我们称函数 A 为回调函数 简单理解: 当一个函数当做参数来传递给另外一个函数的时候,这个函数就是回调函数

    常见的使用场景

    //1.间歇函数
    function fn(){
    		console.log('我是谁')
    }
    //fn传递给了setIterval,fn就是回掉函数
    setInterval(fn,1000)
    
    //2.事件监听
    //这里匿名函数为回掉函数
    box.addEventListener('click',function(){
      console.log('123')
    })
    
    • 把函数当做另外一个函数的参数传递,这个函数就叫回调函数
    • 回调函数本质还是函数,只不过把它当成参数使用
    • 使用匿名函数做为回调函数比较常见