JavaScript-执行环境和作用域

深入理解Linux 内核追踪机制 Linux 存在众多 tracing tools,比如 ftrace、perf,他们可用于内核的调试、提高内核的可观测性。众多的工具也意味着繁杂的概念,诸如 tracepoint、trace events、kprobe、eBPF 等,甚至让人搞不清楚他们到底是干什么的。本文尝试理清这些概念。 阅读详情

执行环境可以说是JavaScript中最重要的一个概念了。(官方定义)执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联的变量对象(VO,variable object)。从代码层面来看“执行环境”可以用VO这个变量对象来表示。我们在浏览器的Console中无法检测查看到,但是解析器在处理数据时会在后台使用它。

执行环境有两种:全局执行环境、函数执行环境。(其实还有一种eval()执行环境,但是eval()函数存在安全问题,目前JavaScript已经不建议使用了,所以也就不在文本的范围之内)。

全局执行环境:最顶层的执行环境,在Web浏览器中,全局执行环境对应的VO我们认为就是window对象(但是在Nodejs中非Web环境就不一定是window了),因此所有全局变量和函数都是作为window对象的属性和方法创建的。当关闭浏览器时,window对象会被销毁,保存在window中的所有变量和函数定义也会被销毁。

函数执行环境:当执行一个函数时,JavaScript才会创建一个新的函数执行环境,也会有一个对应的VO,但是这个VO我们有个专门的定义叫活动对象(AO, activation object)当这个函数执行完之后,则函数对应的VO对象将被销毁,保存在VO对象中的所有变量和函数定义也被销毁。

作用域链:刚刚说过当执行一个函数时,JavaScript才会创建一个新的函数执行环境。那么如果函数嵌套函数呢(套娃),那会不断的创建新的执行环境,函数执行完成后,又会套娃般的销毁执行环境。为了防止混乱,所以作用域链就有存在的价值了。作用域链就是为了保证对执行环境有权访问的所有变量和函数进行有序的访问。

作用域链链接的就是执行环境对应的VO作用域链的起始端始终都是当前执行代码所在执行环境对应的VO。如果这个执行环境是函数,那么对应的VO就等同于AO(前面说的活动对象),会默认包含一个变量arguments(没错,就是函数的参数)。作用域链中的下一个变量对象来自包含该函数的环境(比如嵌套这个执行函数的那个函数),而再下一个变量对象来自则来自于下一个包含环境。这样一直延续到全局执行环境;全局执行环境的变量对象始终都是作用域链中的最后一个VO

【10. Wi-Fi 通用模组-小米 IoT 平台-如何进行硬件调试】 调试APP功能:从米家服务器缓存读取设备状态,等同于米家APP 的环境,开发者使用该调试器可模拟用户使用设备的实际情况,即调试米家 App 中的扩展程序。- 调试固件:调试器从固件读取设备状态,用于调试设备模组固件的某个单项功能,开发者使用该调试器可针对性地调试设备的某个功能。小爱语控测试工具:如果当前产品可被小爱语控,则可以使用该工具调试语控效果。调试APP功能(云端缓存) 阅读详情

相关推荐

zabbix深度监控之邮件告警、微信群微信告警

本文详细介绍了Zabbix监控系统实现邮件告警微信告警的配置方法。邮件告警部分包含QQ163邮箱的SMTP服务器配置、消息模板设置、告警流程三步骤(媒介配置、触发器动作、用户设置)。微信告警分为两种方式:企业微信群机器人告警(通过webhook实现)企业微信应用告警(需创建应用并获取API参数)。两种告警方式都提供了完整的配置流程,包括脚本编写、权限设置、消息模板定制等关键步骤,并特别说明了如何使个人微信接收企业微信告警消息。文章还对比了SMTP、POP3、IMAP三种邮件协议的差异及适用场景。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 757

js最全:JavaScript中的执行环境以及作用域

一。js中的执行环境 概念:执行环境js中最重要的一个概念。它定义了变量或函数有权访问其他的数据,决定了各自的行为。每个执行环境中都有一个与之有关的变量对象,变量对象中包含了执行环境中定义的所有变量函数。 类型:全局局部。根据ECMAScript实现所在的宿主环境不同,执行环境的对象也不同。web浏览器中window对象是全局执行环境。全局变量函数都是作为window对象的属性方法创建的。某个环境中所有代码执行后,该环境就会销毁,其里面所有定义的变量函数定义也销毁(全局执行环境直到退出应用程序才

qq_42483955的博客 607

硬件工程师笔记——运算放大电路Multisim电路仿真实验汇总

本文系统介绍了运算放大电路的基础知识及其应用。主要内容包括:1)运算放大器的基本结构、理想特性及分析方法(虚短、虚断、叠加定理);2)比例运算电路(同向、反向、差分)的工作原理与仿真分析;3)求运算、加减运算电路的实现方法;4)积分、微分、指数对数运算电路的基本原理;5)过零电压比较器的功能特点。通过理论分析仿真实验,详细阐述了各类运算放大电路的输入输出特性、相位关系增益计算,为硬件工程师提供了实用的电路设计参考。

XU157303764的博客 2425

JSJavaScript中的执行环境作用域

JavaScript中的执行环境定义了变量或函数有权访问的数据(每个函数都有自己的执行环境),全局执行环境是最外围的执行环境,在浏览器中,全局执行环境就是window对象,所以所有的全局变量函数都是作为window对象的属性方法创建的。当某一个执行环境中所有代码执行完成后,该环境就被销毁,保存在其中的变量函数也将被销毁,全局执行环境在关闭网页或浏览器时才被销毁。 ...

aodongni1633的博客 165

JavaScript要点详解:执行环境作用域

执行环境(execution context)是JavaScript中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用它。作用域链的原理在JavaScript中保持基本一致。块级作用域在ES6中已经有了很大的改变,也是面试中常考的变量申明的区别所在。

weixin_43197654的博客 1414

javascript执行环境作用域js高程)

执行环境(execution context,为简单起见,有时也成为“环境”)是javascript中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据是会在后台使用他。 ...

adb96102的博客 97

JS执行环境作用域

执行环境 定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量函数都保存在这个变量对象中,但是我们编写代码不能访问这个变量对象,解析器在处理数据时会在后台使用它。 全局执行环境:在JavaScript中window对象表示的是全局执行环境,全局执行环境是最外围的环境,所有的全局变量函数都是作为window对象的属性方法的。...

qq_44169219的博客 288

了解JavaScript执行环境作用域

执行环境定义了变量或函数有权访问的其他数据,决定了它们的各自行为。每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量函数都保存在这个对象中。虽然我们无法访问这个对象,但是解析器在处理数据时会在后台使用它。全局执行环境是最外围的一个环境,根据JavaScript实现所在的宿主环境不同,表示执行环境的对象也不一样。在web浏览器中,全局执行环境被认为是window对象,因此所有全局变量函数都是作为window对象的属性方法创建的。

冰咖啡的专栏 1137

js执行环境作用域闭包_JavaScript执行上下文,提升,作用域闭包的终极指南

It may seem surprising, but in my opinion the most important and fundamental concept to understanding the JavaScript language is understanding Execution Context. By properly learning it, you'll be pos...

cumi6497的博客 265

JavaScript执行环境作用域

一、执行环境 执行环境定义了变量或者函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联的变量对象。环境中定义的所有变量函数都保存在这个对象中。 执行环境是一个概念,一种机制,它定义了变量或函数是否有权访问其他数据 1.全局环境 全局环境是最外围的一个执行环境。全局执行环境被认为是window对象。因此所有全局变量函数都是作为window对象的属性方法创建的。代码载入浏览器时,全局执行环境被创建(当我们关闭网页或者浏览器时全局执行环境才被销毁)。比如在一个页面中,第一次载入JS

weixin_45003524的博客 674

浅谈JS执行环境作用域

今天刚刚开通博客,也是第一次写博文,略感紧张。作为一个表达能力弱弱的人来说,自己花三分钟理解一个知识点,当别人问起时,也许需要30分钟才只是让别人知道自己在说什么,一点也不夸张,希望在博客上可以练习对语言的组织能力并记录学习笔记与大家一起交流。   进入正题>> 首先,相关的概念定义如下:   1. 执行环境: 所有 JavaScript 代码都是在一个执行环境中被执行的。执...

qq_32888087的博客 301

javascript——执行环境作用域

先来明白几个概念: 执行环境:有时候也叫环境,定义了变量函数有权访问的其它数据,决定了他们各自的行为。每一个指定环境都有一个与之关联的变量对象,环境中定义的所有变量函数都保存在这个对象中。 全局执行环境是最外围的一个执行环境,在Web浏览器中,被认为是window对象,每个函数都有自己的执行环境,每当执行流进入一个函数的时候,函数环境将会被推入一个栈中,函数执行完成后,栈就被弹出,理解栈...

Cassie's blog 563

JavaScript执行环境作用域作用域

执行环境定义了变量或者函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联的变量对象。环境中定义的所有变量函数都保存在这个对象中。 执行环境是一个概念,一种机制,它定义了变量或函数是否有权访问其他数据全局环境是最外围的一个执行环境。全局执行环境被认为是window对象。因此所有全局变量函数都是作为window对象的属性方法创建的。代码载入浏览器时,全局执行环境被创建(当我们关闭网页或者浏览器时全局执行环境才被销毁)。比如在一个页面中,第一次载入JS代码时创建一个全局执行环境。这也

weixin_45003524的博客 180

JavaScript执行环境作用域

执行环境JavaScript中的一个重要的概念。

但愿人长久 千里共婵娟 340

原生JS执行环境作用域深入理解

原生JS执行环境作用域深入理解

越努力,越幸运! 6770

JS执行环境作用域

执行环境JavaScript中是一个非常重要的概念。执行环境定义了变量或函数访问其他数据的权限行为,每个执行环境都有一个与之相关联的变量对象。在该执行环境下定义的变量函数都被保存在这个变量对象中。 执行环境的分类:全局执行环境、局部执行环境 1、全局执行环境 全局执行环境是处于最外围的执行环境。在浏览器中,全局执行环境就是window对象,在全局作用域下定义的变量函数都是wind...

狐耳 297

js执行环境作用域作用域链的理解

  越是学习js越是觉得js基础理论知识是多么的重要,所以最近花了比较多的时间去学习,并把学习所得之感悟记录下来,以加深自己的理解,同时也供将来自己复习所用。写的不对的地方还烦请各位大神指出,非常乐意跟各位同道中人交流。 1、执行环境 2、作用域 3、变量对象 1、执行环境   执行环境是指函数或变量在js运行起来时所处的环境执行环境定义了变量或函数有权访问的其他数据...

weixin_34283445的博客 147

JavaScript执行环境作用域及this值

执行环境JavaScript执行环境定义了其中的变量函数有权访问的其他数据,即规定了在其内部能够访问什么数据。每个执行环境都有一个与之相关联的“变量对象”,环境中定义的变量函数都保存在这个对象之中,可以理解为环境内的变量函数都是这个变量对象的属性方法,但是这个变量对象我们无法通过js访问到。可能这个概念有点难以理解,我们来看看一个例子:全局执行环境是最外围的一个执行环境,在web浏览器中...

paper_crane的博客 1188

js执行环境作用域

执行环境 执行环境定义了变量或函数有权访问的其他数据(可把执行环境看作对象,含有属性函数),决定了她们各自的行为。 执行环境有全局执行环境局部执行环境,每个函数都有自己的执行环境(局部执行环境),window对象的执行环境是全局执行环境 例如,这个例子中共有三个执行环境,全局执行环境函数A,B的局部执行环境 var color="pink"; function A(){ var a="blue" function B(){ var b="white"

weixin_44354089的博客 209

js 执行环境作用域

执行环境作用域定义:执行环境定义了变量或者函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有一个相关联的变量对象,环境中定义的所有变量函数都储存在这个对象中;全局执行环境js中被认为是window对象,所有的全局变量函数都是作为window对象的属性方法创建出来的;全局执行环境是直到应用程序或者浏览器关闭时才会被销毁;局部执行环境执行流进入到一个函数函数时,这个函数环境就...

cat_sky的博客 287

JavaScriptJS执行环境作用域

一、执行环境JavaScript中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为,每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量数据都保存在这个对象中,我们无法访问这个变量对象,但是解析器在处理数据的时候会在后台中使用到它。 1、全局执行环境:全局执行环境是最外围的一个执行环境。在Web浏览器中全局执行环...

weixin_34221073的博客 69

科研伦理与学术规范课后答案

科研伦理与学术规范课后答案

pxi6251手册

pxi-6251详细手册

上一篇: JavaScript-数据类型
下一篇: JavaScript执行顺序
ForwardGu
博客等级 码龄5年 0粉丝 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值