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

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

    • 优先级
      • 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不会被提升

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容