作用域链

作用域就是一套规则,用于确定在何处以及如何查找变量(标识符)的规则

例:

示例1.png

在foo函数执行的时候,输出一个a变量,这个a变量就是函数第一行定义a变量的代码 var a = 'ccccc'.

再一例:

示例2.png

同样,再输出b的时候发现自己函数内部没有找到变量b,那么就在外层的全局中查找,找到了变量b就停止查找并输出。

两个例子都有查找变量,不同的是第一段代码是在函数中找到变量,第二段代码是在全局中找到b变量。也就是说第一段代码是在函数作用域中找到a变量,第二段代码是在全局作用域中找到b变量。

通俗的说 ** 作用域就是查找变量的地方**

作用域链

如上示例2,在查找b变量的时候,先在函数作用域中查找,没有找到,再去全局作用域中查找,有一个往外层查找的过程,就好像顺着一条链条从下往上查找变量,这条链条,就称之为作用域链

作用域嵌套

函数作用域肯定实在全局作用域里面的,而函数作用域中又可以继续嵌套函数作用域,如下图:

示例3.png

代码则是:

示例4.png

作者:沉沉___

链接:https://www.jianshu.com/p/05ca23477b5c

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作用域与作用域链 一、作用域 一个变量的作用域(scope)是程序源代码中定义的这个变量的区域。 在JS中使用的是...
    e81bcd463937阅读 565评论 0 2
  • 一、作用域 一个变量的作用域(scope)是程序源代码中定义的这个变量的区域。 1. 在JS中使用的是词法作用域(...
    挣脱吧小白阅读 463评论 0 0
  • 一、作用域 一个变量的作用域(scope)是程序源代码中定义的这个变量的区域。 在JS中使用的是词法作用域(lex...
    博闻强记富内斯阅读 878评论 0 5
  • 前言 对于js中的闭包,无论是老司机还是小白,我想,见得不能再多了,然而有时三言两语却很难说得明白,反正在我初学时...
    itclanCoder阅读 4,230评论 1 11
  • 好久好久没有来简书了,一直都不想记录东西,浑浑噩噩地过着一天一天,今天和承办人互相夸奖说每天进步一点点,我说了句...
    里由米恩阅读 152评论 0 0