1. 执行环境及作用域链
执行环境:也叫做环境,定义了变量或者函数有权访问其他变量或者数据;
全局环境:window对象
局部环境:代码在环境中执行时,为它的变量函数分配内存空间,代码执行完毕,环境被销毁
var color="red"
function color(){
var anothercolor="blue"
function changecolor(){
var middle;
middle=color;
color=anothercolor;
another=middle;
}
changecolor()
}
全局环境 color color()
color函数中的局部变量:anothercolor changecolor()
changecolor函数中局部变量 :middle
作用域链:
局部环境会在在自己的执行环境中找变量。如果找到则停止,如果没找到则会去父级作用域链中找
也就是说changecolor环境中可以读取父级函数color中的变量,相反的。color中读取不到changecolor环境中的变量
2.没有块级作用域
if(){
var color="red"
}
alert(color)//red