谈一谈 js 中的执行环境及作用域_
这篇文章主要和大家一起谈一谈 js 中的执行环境及
作用域,本文依据面试过程中遇到的问题进行探讨,感爱
好的小伙伴们可以参考一下
首先来说说 js 中的执行环境,所谓执行环境(有时也称环
境)它是 JavaScript 中最为重要的一个概念。执行环境定
义了变量或函数有权访问的其他数据 ,决定了它们各自的
行为。而每个执行环境都有一个与之相关的变量对象,环
境中定义的全部变量和函数都保存在这个对象中。
理解了执行环境,现在就看看什么是作用域链吧。每个函
数都有自己的执行环境,当代码在执行环境中执行时,就
会创建变量对象的作用域链。作用域链保证了对执行环境
有权访问全部变量和函数的有序访问。作用域链的前端,
始终都是当前执行的代码所在的环境的变量对象,假如环
境是一个函数,那么它的变量对象就是该函数的活动对象
作用域链的下一个变量对象来自包含(外部)环境,再下
一个变量对象来自下一个包含环境。这样始终连续到全局
执行环境,记住,全局执行环境的变量对象永久是作用域
中的最终一个对象。
请看下面的例子: