《你不知道的JavaScript》读书笔记 - 简单总结LSH/RSH过程

书中解释了作用域的概念:负责所有标识符组成的一系列查询,确定访问权限。

关于查询,分为左查询(LSH),右查询(RSH);可简单理解赋值操作为执行LSH,取值/引用操作为RSH。

,以var a = 2;为例,我们分析JavaScript的LSH查询过程,我们把声明和赋值分开看:

首先是 var a:

1.查询当前作用域是否有变量a
2.如果没有,就在当前作用域声明一个;
3.如果有,就忽略该声明,继续往下执行。

其次是a = 2;:(执行LSH)

1.查询当前作用域是否有变量a
2.如果没有,就往上一级作用域查找,直到全局作用域为止;(非严格模式下)全局作用域没找到,就在全局作用域声明一个变量a,严格模式下,会出现ReferenceError
3.如果有,进行赋值操作。

二,console.log(a);为例,我们分析RSH查询过程:

1.查询当前作用域是否有变量a
2.如果有,引用标识符a对应的值(只有声明的话为值undefined);
3.如果没有,会出现ReferenceError

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容