javascript的作用域链和变量提升

一、javascript的作用域链

  • 如果函数中还有函数,或者块级作用域又嵌套块级作用域,那么在这个作用域中就又可以诞生一个作用域,这样的嵌套作用域形成了链状的结果就是作用域链。

javascript的作用域链和变量提升_第1张图片


二、变量提升及预解析

  • JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
  • var变量提升时,只将var定义的变量提升到此作用域的最顶部,不提升赋值。
  • 函数声明提升只提升函数到此作用域的最顶部,不直接调用。(注意:函数提升分为函数表达式和函数声明,只有函数声明才会提升)
  • 先提升var,再提升函数。

注意:var和function同名时,function的优先级高于var。

 

参考菜鸟教程 https://www.runoob.com/js/js-scope.html

学习的课程:李南江的前端课程 (他的简书https://www.jianshu.com/p/c73f5124d69f

你可能感兴趣的:(javascript,javascript,es6)