把作用域链比喻成一个建筑

作者: 深度剖析JavaScript | 来源:发表于2021-04-13 20:58 被阅读0次
前言

最近在看《YOU DON’T KNOW JS》一书,里面讲到作用域的嵌套,内容主要讲了两点:
一是作用域嵌套产生由来,其实就是当一个块或函数嵌套在另一个块或函数中时,就发生了作用域的嵌套;
二是查找变量的规则,引擎从当前的执行作用域开始查找变量,如果找不到,就向上一级继续查找。当抵达最外层的全局作用域时,无论找到还是没找到,查找过程都会停止
另外还有一个比喻我觉得挺有意思,也很好地帮我们理解作用域链,我将原文内容分享出来

把作用域链比喻成一个建筑

文中作者将作用域链比喻成一个建筑,建筑代表程序中的嵌套作用域链。第一层楼代表当前的执行作用域,也就是你所处的位置。建筑的顶层代表全局作用域。

LHSRHS引用都会在当前楼层进行查找,如果没有找到,就会坐电梯前往上一层楼,如果还是没有找到就继续向上,以此类推。一旦抵达顶层(全局作用域),可能找到了你所需的变量,也可能没找到,但无论如何查找过程都将停止

参考资料

《YOU DON’T KNOW JS》

相关文章

  • 把作用域链比喻成一个建筑

    前言 最近在看《YOU DON’T KNOW JS》一书,里面讲到作用域的嵌套,内容主要讲了两点:一是作用域嵌套产...

  • 作用域链的理解

    作用域链的理解 1可以把作用域链理解成是一个栈结构; 2每个作用域都有一个作用域对象用于保存在该作用域内创建的变量...

  • 作用域链

    作用域链 把多个作用域串起来便形成了作用域链;每个函数在初始化完成之后就拥有了各自的作用域链,但此时的作用域链中并...

  • 作用域链和闭包

    在谈作用域链之前先说一下与作用域链关系紧密的执行环境和作用域。 作用域:作用域指的是变量的适用范围。 作用域链:作...

  • 作用域链

    作用域链(scope chain) 理解: 作用域链决定了哪些数据能被函数访问。当一个函数创建后,它的作用域链会被...

  • 作用域链

    什么是作用域链? 在理解什么是作用域链之前,我们需要了解一个概念,那就是作用域。那么什么是作用域呢?简单的说,作用...

  • 闭包

    作用域链 要学习闭包,首先要了解作用域链 作用域链:环境对象中定义的变量,会放到作用域中,形成一个链式结构。 定义...

  • 作用域链

    作用域链是什么? 如果要解释作用域链得先知道什么是作用域?什么是闭包? 什么是作用域 用域是一个函数在执行时期的执...

  • web性能实践

    一. 作用域 前面我们了解作用域概念的以及作用域链是如何运作的。 随着作用域链中的作用域数量的增加,访问当前作用域...

  • Javascript学习笔记——5.7 其他语句类型

    with with语句用于临时扩充作用域链 上面的语句负责把object添加到作用域链的头部,然后执行statem...

网友评论

    本文标题:把作用域链比喻成一个建筑

    本文链接:https://www.haomeiwen.com/subject/qhoclltx.html