您的位置:首页 > Web前端 > JavaScript

JS执行环境与作用域

2016-04-06 23:21 453 查看

总结:

JS中没有块级作用域,只有函数执行环境全局执行环境window
没进入一个新环境就会创建一个用于搜索变量和函数的作用域链
局部环境可以访问其包含(父)环境,全局环境或父环境不能访问局部环境

执行环境(execution context):

定义了变量或函数有权访问的数据
每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的变量和函数都保存在这个对象中
包括函数执行环境和全局执行环境window

作用域链(scope chain):

对执行环境有权访问的所有变量和函数有序访问
作用域链前端为当前执行代码所在环境的变量,全局window是作用域链上的最后一个对象
沿着作用域链从前端开始一级一级往后回溯,直到找到标识符为止
若局部和父环境同名,则使用局部标识符

例子:

1.if语句中的声明的变量会添加到当前环境,如
for (var i=0;i<10;i++){
doSomething();
}
alert(i);              //10
2.标识符查询示例

var color = "blue";

function getColor1(){
return color;
}

function getColor2(){
var color = "red";
return color;
}

alert(getColor1());    //"blue"
alert(getColor2());    //"red"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript