JavaScript权威指南(第六版) 初读笔记

时间:2022-01-21 04:22:18

变量{基本变量,对象,数组,表达式函数}
变量声明
函数声明提前和函数作用域,生命周期
全局变量,全局生命周期

域链(scope chain)

每一段JavaScript代码(全局代码或函数)都有一个与之相关的作用域链(scope chain)。
这个作用域链是一个对象列表或者链表,这组对象定义了这段代码“作用域中”的变量。

“变量解析”(variable resolution)过程

  • 它会从链中的第一个对象开始查找,如果这个对象有一个名为x的属性,则会直接使用这个属性的值,
  • 如果第一个对象中不存在名为x的属性,JavaScript会继续查找链上的下一个对象。
  • 如果第二个对象依然没有名为x的属性,则会继续查找下一个对象,以此类推。
  • 如果作用域链上没有任何一个对象含有属性x,那么认为这段代码的作用域链上不存在x,并最终抛出一个引用错误(ReferenceError)异常。


变量的深度