目录:
1.什么是执行环境
2.浅谈作用域链
一、什么是执行环境
执行环境定义了变量或者函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联的变量对象。环境中定义的所有变量和函数都保存在这个对象中。虽然我们在编写代码的时候无法访问这个对象,但解析器在处理数据时会在后台用到它。
大白话的理解:如果咱们定义了2个函数,那么每一个函数都是独立的,比如a函数和b函数,那么如果a函数要直接访问b函数中的变量,是访问不到的,因为都是独立的(当然也有方法)。
执行环境是一个概念,一种机制,它定义了变量或函数是否有权访问其他数据
在javascript中,可执行的JavaScript代码分三种类型:
1. Global Code,即全局的、不在任何函数里面的代码,例如:一个js文件、嵌入在HTML页面中的js代码等。
2. Eval Code,即使用eval()函数动态执行的JS代码。
3. Function Code,即用户自定义函数中的函数体JS代码。
跳过Eval Code,只说全局执行环境和函数执行环境。
1.全局执行环境
在web浏览器中,全局执行环境被认为是window对象,因此所有全局变量和函数都是作为window对象的属性和方法创建的。代码载入浏览器时,全局执行环境被创建(当我们关闭网页或者浏览器时全局执行环境才被销毁)。
2.局部执行环境
每个函数都