第四章:变量
时间:2011-03-09 来源:王长委
- JS中变量的重复声明相当于重新对变量赋值。
- 局部变量的优先级比全局变量的优先级高
- 没有使用var声明的变量都是全局变量
- JS中变量可以先使用后声明
- 两种未定义变量:一种是未定义的变量从来没有被声明过,尝试这种未经声明的变量会引起运行时错误,另一种是变量已经声明但是未赋值的变量,这样的变量有一个默认值undefined
- JS中有专门的垃圾回收机制
- JS中的解释器开始运行时,它首先要做的事情之一就是在执行任何JS代码之前,创建一个全局对象,这个对象就是一个顶级对象,而我们所说的全局变量就是顶级对象的属性(所以在任何时候属性和变量是一个概念),那么局部变量是谁的属性呢?局部变量就是调用函数(也是一个特殊的对象)的对象的属性。
- JS的解释器每次开始执行一个函数时,都会为那个函数创建一个执行环境,每个执行环境都有一个和它关联在一起的作用域链,这个作用域链就是对象链,在JS的顶层代码中,作用域链只有一个对象,那就是顶级对象,所有的变量都是在这一对象中查询的,在一个非嵌套的函数中,作用域链是由连个对象构成的,一个是函数的调用对象,一个是顶级对象,当函数引用一个变量时,首先检查的是调用对象,其次检查顶级对象,在嵌套函数的作用域中可以有三个或更多的对象。
相关阅读 更多 +