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); //102.标识符查询示例
var color = "blue"; function getColor1(){ return color; } function getColor2(){ var color = "red"; return color; } alert(getColor1()); //"blue" alert(getColor2()); //"red"
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享