执行环境其实就是我们熟知的作用域,让我们来瞅瞅javascript的执行环境吧。
- 执行环境有全局执行环境(也称为全局环境)和函数执行环境之分。
- 每次进入一个新执行环境,都会创建一个用于搜索变量和函数的作用域链。
- 函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其包含(父)环境,乃至全局环境。
- 全局环境只能访问在全局环境中定义的变量和函数,而不能直接访问局部环境中的任何数据,
- 变量的执行环境有助于确定应该何时释放内存。
因为之前学过的语言其作用域的概念都是说在一对{}内,但是javascript的最小的作用域就是函数,是函数执行环境,所以在函数内的变量都会自动绑定到函数执行函数环境中。举例:
for(var i = 0; i < 10; i++){
doSomething();
}
alert(i); //10
因为没有块级作用域,所以i的作用域是其执行环境,所以即使for循环结束,i也不会消失,不会被销毁。