JavaScript作用域和作用域链知多少

   日期:2020-09-14     浏览:102    评论:0    
核心提示:前言:本篇文章向大家分享一下作用域和作用域链,希望对大家有所帮助!作用域:作用域就是代码的执行环境,全局执行环境就是全局作用域,函数的执行环境就是函数作用域(私有作用域),他们都是栈内存。全局执行环境是最外围的执行环境,根据ECMAScript所实现的宿主环境不同,表示的执行环境的对象也不同。在Web浏览器中,全局执行环境被认为是Window对象,因此所有全局变量和函数都是作为Window对象的属性和方法创建的。在Node环境中,全局执行环境是global对象。某个环境执行完毕完所有的代

前言:

本篇文章向大家分享一下作用域和作用域链,希望对大家有所帮助!

作用域:

作用域就是代码的执行环境,全局执行环境就是全局作用域,函数的执行环境就是函数作用域(私有作用域),他们都是栈内存。全局执行环境是最外围的执行环境,根据ECMAScript所实现的宿主环境不同,表示的执行环境的对象也不同。

在Web浏览器中,全局执行环境被认为是Window对象,因此所有全局变量和函数都是作为Window对象的属性和方法创建的。在Node环境中,全局执行环境是global对象。

某个环境执行完毕完所有的代码以后,该环境就会被销毁,内部的变量和函数也都会被销毁,但是全局执行环境会等到程序退出的时候才会被销毁。每个环境都有自己的执行环境,当执行流入一个函数的时候,函数的环境就会被推入一个环境栈中,当函数执行完毕以后,环境弹栈,将控制权返回给之前的环境。

 

  • 私有作用域;函数内部的环境
  • 全局作用域:页面加载时候形成
  • 私有变量:私有作用域的变量
  • 全局变量:在全局作用域中形成的变量

作用域链:

代码在一个环境中执行的时候,会创建变量对象的一个作用域链,用于保证对执行环境有权访问的所有变量和函数有序访问,作用域链前端始终都是当前执行的代码所在环境的变量对象。

可以理解为一个链子连着一个个的作用域,当前执行环境的作用域在最前边,然后我们如果查找一个变量的时候,就会一个一个作用域的向上查找,最终到达全局作用域,如果还没有,就报错。

感谢观看,有任何问题可以评论区评论!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服