美文网首页
JS 函数声明和函数表达式的区别

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

作者: yfmei | 来源:发表于2018-07-16 09:08 被阅读0次
    • 函数声明和函数表达式的区别

      • 优先级
        • JavaScript的变量声明提升机制-即可以先使用,后声明
        • 函数声明会被提升到作用域的最前面
        • 函数表达式不会被提升,运行时赋值,赋值完才能调用(IIFE就不需要赋值了)
      • 名称
        • 函数表达式可以没有名字
      • 形式
        • 函数表达式简单理解就是一个函数赋值给一个变量,这个变量就叫函数表达式
    • 举个例子

    var print  // 下面的函数声明被提升了,所以这里 typeof print === function
    print() // 2
    var print = function (){
      console.log(1);
    } // 函数表达式赋值,且覆盖函数声明
    print() // 1
    function print(){
      console.log(2);
    } // 函数声明
    print() // 1
    
    • 所以输出顺序是:
    2
    1
    1
    

    es6 的let不会被提升

    相关文章

      网友评论

          本文标题:JS 函数声明和函数表达式的区别

          本文链接:https://www.haomeiwen.com/subject/clevpftx.html