标签:height mono neu for语句 container ref war ack display
执行环境及作用域
执行环境:定义了变量和函数有权访问的其他数据,决定了它们各自的行为,每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中
*全局执行环境:是最外围的一个执行环境,全局执行环境直到应用程序退出时才会被销毁;
1.每个函数都有自己的执行环境
2.在局部作用域中定义的变量可以在局部环境中与全局变量互换使用
4.2.1 延长作用域链
执行环境的类型总共只有两种:全局和局部(函数)
延长作用域链:有些语句可以在作用域链的前端临时增加一个变量对象,该变量对象会在代码执行完后被移出
1.try-catch语句的cath块,会创建一个新的变量对象;
2.with语句,会将指定的对象添加到作用域链中;
4.2.2 没有块级作用域
1.没有块级作用域
2.由for语句创建的变量即使是在循环结束之后也会依然存在于全局变量中
a.声明变量
使用var声明的变量会自动被添加到最接近的环境中,在函数中最接近的环境就是函数的局部环境,
在with语句中最接近的环境就是函数环境
如果初始化没有使用var声明,该变量会自动添加到全局环境
b.查询标示符
当在某个环境中为了读取或者写入一个标示符是,必须通过搜索来确定该标示符实际代表什么,
搜素过程从作用域前端开始向上逐级查询与给定名字匹配的标示符
JavaScript具有自动垃圾收集机制,执行环境会负责管理代码执行过程中使用的内存
1.标记清除
2.引用计数
3.性能问题
4.管理内存
标签:height mono neu for语句 container ref war ack display
原文地址:http://www.cnblogs.com/shuiyaodongwu310988929/p/6908639.html