作用域链: 由于JavaScript的变量都是对象的属性,而该对象可能又是其他对象的属性,而所有对象都是window对象的属性,所以这些对象的关系可以看作是一条链,链头就是变量所处的对象,链尾就是window对象。
function t() { var a; function t2(){ var b;} }
JavaScript中函数也是对象,所以变量a所在的对象t,t又在window对象中。
所以a的作用域链: t —>window
b的作用域链: t2—>t—>window
1.JavaScript没有var的变量都为全局变量,且为window对象的属性。

2.函数内(函数内的函数除外)定义的变量在整个函数内部都有效。

3.函数内部的变量取代全局同名变量。

4.没有块的作用域。

网友评论