执行环境(Execution context,EC)或执行上下文,是JS中一个极为重要的概念
当JavaScript代码执行的时候,会进入不同的执行上下文,这些执行上下文会构成了一个执行上下文栈(Execution context stack,ECS)。
[[Scope]]
属性:作用域即变量对象,作用域链是一个由变量对象组成的带头结点的单向链表,其主要作用就是用来进行变量查找。而[[Scope]]属性是一个指向这个链表头节点的指针。
当一段JS代码执行的时候,JS解释器会通过两个阶段去产生一个EC
[[Scope]]
属性的值//函数声明
function f(){}
//变量声明,必须通过var关键字声明
var example = 'example'
注:步骤2和3也称为声明提升(declaration hoisting)
window对象
,是JS代码开始运行时的默认环境。注:上面的分类也说明了JS中只有两种作用域(作用域即变量对象):全局作用域、函数作用域,并没有块级作用域,更没有对象作用域(见最后的例子,但是with语句是一个例外,其可以临时在作用域链的前端增加一个普通对象)
见文章:JS中的this
JavaScript的执行上下文, 五星级好文
JavaScript中的this
理解JavaScript中的作用域链
Scope chain
JavaScript高级程序设计
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123