【北京130期】JS作用域与作用域链

大家好,我是IT修真院北京分院第十九期的学员陈鹏康,一枚正直纯洁善良的WEB前端程序员。今天给大家分享一下JS中作用域和作用域链的概念。

一、背景介绍

作用域与作用域链是JS中非常重要的概念之一

学习作用域与作用域链对于深入了解JS的运行机制是一个很大的帮助。

二、知识剖析

1.

执行环境

执行环境决定了变量对象的行为。

2.

全局执行环境

全局执行环境被认为是window对象

3.

函数执行环境

每个函数都有自己的执行环境

执行流=>函数=>(函数的环境)=>环境栈=>环境栈将函数环境弹出=>函数

4.

当执行环境的所有代码执行完毕,该环境被销毁。

全局执行环境只有关闭网页或浏览器时才会被销毁。

5.

作用域链

代码在环境中执行,会创建变量对象的一个作用域链。

它的存在是为了让变量对象中的所有变量和函数有序的执行

**6.**

标识符解析

沿着作用域链一级一级的搜索标识符的过程。

三、常见问题

让我们用代码来形象演示一下上述的过程

四、解决方案

【北京130期】JS作用域与作用域链_第1张图片

五、编码实战

【北京130期】JS作用域与作用域链_第2张图片

六、拓展思考

1.延长作用域链

某些语句可以在作用域前端临时增加一个变量对象,在代码执行后会被移除

2.with语句

将指定的对象添加到作用域中

3.try-catch语句中的catch块

会创建一个新的变量对象

4.没有块级作用域

【北京130期】JS作用域与作用域链_第3张图片

5. 声明变量

var 声明的变量会自动被添加到最接近的环境中

【北京130期】JS作用域与作用域链_第4张图片

6.查询标识符

【北京130期】JS作用域与作用域链_第5张图片

七、参考文献

javaScript高级程序设计

八、更多讨论

了解闭包的机制

PPT链接


JS之中的作用域与作用域链_腾讯视频


------------------------------------------------------------------------------------------------------------------------

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

****

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

我的邀请码:47342286,

或者你可以直接点击此链接:

http://jnshu.com/login/1/47342286

你可能感兴趣的:(【北京130期】JS作用域与作用域链)