JavaScript作用域和作用域链知多少 01-jquery概述 简单概述JSONP原理 02-$符号-jquery与js相互转换 遇见 vue.js --------阿文的vue.js学习笔记(2)----- 基本使用 全国鞋服行业首个5G专项应用落地柒牌 自动搬运作业提升效率150% 大数据系统提高生产效率超10% [网络安全自学篇] 九十四.《Windows黑客编程技术详解》之提权技术(令牌权限提升和Bypass UAC) 鸿蒙OS 2.0 开源蹭热浅读 蚂蚁三面滑铁卢!遭分布式截胡,靠这些笔记潜修30天,挺进京东 【高并发】Redis如何助力高并发秒杀系统,看完这篇我彻底懂了!! K8s概述:几种集群方案的对比 Linux到底该怎么学?RHCA架构师整理了300页学习笔记 到了2020年,技术水平到底需要达到怎样的程度才能成为顶级的阿里P8架构师 Linux怎么学?一张思维导图带你深入Linux核心原理 金九银十首战告捷!凭借这份Alibaba爆款“面试宝典”成功斩获美团Offer 大数据杀熟:我投之以元宝,它报之以砍刀! “物联网加持”下的社区长啥样儿? 潘云鹤院士:大数据智能是人工智能2.0的核心组成部分 防小孩和老人走失,定位精度达1厘米?上海社区为先进物联网产品提供落地场景 技术老兵十年专攻MySQL编写了763页核心总结,90MySQL问题全解 【Jenkins自动化部署】Windows节点Apache+Django服务自动化构建 Mybatis 使用通用 mapper 正道的光!阿里爆款Jenkins+K8s笔记终于全网开源了 不要死磕Java并发了,阿里P7架构师带你深入剖析synchronized的实现原理 EtherNet/IP协议基础知识(Part 1) CGB2005-京淘13 思科 OSPF协议简单配置与分析 在一家公司呆了 10 年的程序员,最后都怎么了? 致力物联网芯片研发,奕斯伟计算获逾20亿元融资 Unity性能优化技巧 纪念首次撸出来的编程题--2020深信服软件测试岗 qml 去除标题栏后 拖动窗口和改变窗口大小 如何舒服地在图书馆用ipad入门深度学习【windows jupyter远程】 力扣Java版个人代码分享-树篇( 107. 二叉树的层次遍历 II) 第十届蓝桥杯省赛java类B组 试题 E:迷宫 (动态规划之回溯法) Unity+罗技G29方向盘+Realistic Car Controller 制作简单的模拟驾驶 2020阿里笔试题解(9.11) 起飞!这份技术点拉满的ELk+Lucene笔记,可能价值百万 好文精选整理--Redis+Nginx+设计模式+Spring全家桶+SQL+Dubbo技术 覆盖全网的微服务架构笔记,看完还不懂你来打我 技术干货:JVM架构体系与GC命令全梳理,建议收藏 跪拜,阿里P9加班到凌晨,硬肝三个月推出这份IT架构运维实践 太厉害了,华为架构师终于整理出SSM+Nginx+Redis+SQL+微服务pdf 膜拜!终于有人总结出Spring+SpringMVC+MyBatis源码层PDF了 开发1-5年的Java程序员,该学习哪些知识实现涨薪30K? 云原生景观:供应层(Provisioning)介绍 vulhub学习笔记-struts2 S2-057 Remote Code Execution Vulnerablity远程代码执行 微服务启动报 Error creating bean with name ‘eurekaAutoServiceRegistration‘ 异常 「信息安全-密码与隐藏技术」RSA加密算法的实现(CPP 实现) 单例模式线程是否安全?
您的位置:首页 >开发 >

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

前言:

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


作用域:

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

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

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

 

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

作用域链:

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

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


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

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。