javascript——执行环境和作用域

javascript执行环境及作用域详解 主要为大家详细介绍了javascript执行环境及作用域,分别针对javascript执行环境及作用域进行探讨,感兴趣的小伙伴们可以参考一下 立即下载

先来明白几个概念:

执行环境:有时候也叫环境,定义了变量和函数有权访问的其它数据,决定了他们各自的行为。每一个指定环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。

全局执行环境是最外围的一个执行环境,在Web浏览器中,被认为是window对象,每个函数都有自己的执行环境,每当执行流进入一个函数的时候,函数的环境将会被推入一个栈中,函数执行完成后,栈就被弹出,理解栈也就能理解,所以内部可以向上访问外部,外部不能向下访问内部。

当代码在一个环境中执行的时候,就会创建作用域链,保证对执行环境有权访问所有变量和函数的有序访问。全局执行环境的变量对象始终都是作用域中的最后一个对象。(个人理解:可以把作用域链想象成一条链子,链子都是通过环境对象连接起来,末端就是全局对象,最前端就是当前执行的代码所在的环境对象,为什么是一条链子呢,就是我这没有的东西,属性等,可以向链子的后端去追溯访问)当然找不到,就报错呗!找到了就停止。

自己根据自己理解,画了一个草图,有问题很开心沟通交流

函数中称为活动对象,因为在函数执行上下文中,变量对象是不能直接访问的,此时由激活对象扮演变量对象,激活对象是在进入函数上下文中被创建的,通过函数的arguments属性初始化。

这几个属性和属性吧,对于函数来说。这就是激活对象内部的属性。

对于整个的创建流程,需要清楚一下呢:

1、首先根据函数的参数,创建并初始化arguments object

2、查找函数声明,将函数引用保存到变量对象,或者对于函数来说的激活对象里面,后来居上,如果已经存在就覆盖。

3、查找变量声明,自动初始化为undefined。

 

执行环境和作用域链的区别和联系:

 

执行环境有全局执行环境和局部执行环境(也就是函数执行环境)

作用域链是由多个执行环境的变量对象共同组成的。对象对象对象组成!! 那么作用域就是一个个变量对象了

当代码在一个环境中执行的时候,会创建变量对象的作用域链。

在javascript中,没有块级作用域,更没有对象作用域,with语句逆天除外,但是在开发大型应用程序会导致性能降低,加大代码调试难度,不建议使用。

所以Javascript中就两种作用域:全局作用域和函数作用域

记住变量提升的东西!

this:指向一个对象,就是一个普通的可以访问的对象。

好文: 

    执行上下文:http://www.cnblogs.com/wilber2013/p/4909430.html

下一篇文章,结合代码分析:[[scopes]]结合实际分析

PHP实战:5分钟搞定SM4国密加密算法集成(附完整代码) 本文详细介绍了如何在PHP项目中快速集成SM4国密加密算法,提供完整的代码实现和实际应用示例。从算法原理到核心代码解析,再到性能优化与安全实践,帮助开发者高效实现数据加密功能,满足金融、政务等领域的合规需求。 阅读详情

相关推荐

嵌入式人工智能(18-基于树莓派4B的继电器JQC-3FF-S-Z)

本次实验的输出端控制不会接强电,就用LED灯来模拟即可,由于我那个流水灯模块是低电平点亮,所以接线稍有不同,同学们注意。只有继电器吸合,输出端的NO与COM就导通,给LED低电平然后就亮,否则继电器断开,NO与COM不导通,LED不亮。原理都一样,控制电流的接通与断开,这个模块看起来还简单点,毕竟还有2个指示灯,下端IN如接上电源红灯亮,继电器动作有电流通过绿灯亮。在实际应用中,可以通过编程控制继电器的通断状态,例如在Python编程中设置继电器模块的通断时间,从而实现自动化控制。

u010152658的博客 2531

JavaScript执行环境及作用域

执行环境(executin context)是JS中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中。虽然我们编写的代码无法访问这个对象,但解析器在处理数据时会在后台使用它。 全局执行环境是最外围的一个执行环境。根据JS实现的宿主环境不同,表示

漫长学习路 2764

用Stata复现经典文献:上市公司全要素生产率(TFP)计算全流程(含LP/OP代码解读)

本文提供了使用Stata软件复现上市公司全要素生产率(TFP)计算的完整实战指南。重点解读了主流的Levinsohn-Petrin(LP)和Olley-Pakes(OP)半参数估计方法,通过详细的数据清洗、变量构建与价格平减步骤,手把手演示了如何准确测算TFP,并强调了LP方法在处理中国上市公司数据时的稳定性和适用性。

b0c1d2的博客 593

JS的执行环境及作用域

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

qq_44169219的博客 292

MATLAB AppDesigner 中TextArea保留原有信息并换行显示提示信息

App Designer 中的文本区域TextArea组件,一般可以用来作为matlab app设计中的信息显示。 app.TextArea.Value = 'Hello Matlab'; Value可以是字符向量、字符向量元胞数组、字符串数组或一维分类数组。这样直接给TextArea赋值,每次赋值都会消除先前的信息,然后显示新的信息。如果想要在app实现保留原有信息、多行信息的输出,在MathWorks官方帮助中心给出了一种方法: cellArrayText{1} = sprintf('%s\n

我是麻瓜喔的博客 1万+

使用.NET 免费开源包ViewFaceCore做一个人脸识别并注册的功能,没有比我更全的

本文介绍了一个基于WinForm的免费人脸识别系统实现方案。系统使用AForge和ViewFaceCore库,支持从USB或电脑自带摄像头采集图像,具备人脸注册和快速识别功能。硬件方面仅需普通摄像头,软件依赖多个NuGet包(如AForge.Video、ViewFaceCore等)。界面包含视频显示、图像预览和功能按钮控件,后台采用SQLServer存储用户面部特征数据。核心代码展示了人脸检测、特征提取和多线程处理逻辑,通过ViewFaceCore实现高效识别。系统具有识别速度快、准确率高的特点,适合Win

一个靠“吃代码”长大的程序猿,专治各种“Bug 饥饿症”。 817

简述执行环境与作用域

1.背景介绍执行环境:执行环境(execution context,为简单起见,有时也称为“环境”)是JavaScript 中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。——《JavaScript高级程序设计(第3版)》每个函数都有一个自己的执行环境。某个执行环境中的所有代码执行完毕后,该环境被销毁,保存在其中的所有变量和函数定义也随之销毁(全局执行环境直...

qq_41865159的博客 594

YOLOv11知识蒸馏,实现无损涨点,包含逻辑蒸馏和特征蒸馏中的不同蒸馏方法,适用专栏内的所有模型

知识蒸馏(Knowledge Distillation)是由 Hinton 等人在 2015 年提出来的,主要是用一个复杂的教师模型去指导一个简单的学生模型训练,这样能让学生模型在保持高精度的同时,还能减少计算量。本文便是讲解如何针对的原始模型以及改进后的模型进行知识蒸馏,轻松实现无损涨点。知识蒸馏的核心在于利用已训练好的复杂模型(教师模型)去指导一个更简单的模型(学生模型)进行训练,以此让学生模型在保留较高精度的同时,降低计算成本。特征蒸馏(Feature Distillation)是知识蒸馏的一种形式,

Limiiiing的博客 4959

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

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

越努力,越幸运! 6773

C#跨平台制图新纪元:Mapsui,一库在手,地图我有

深入学习Mapsui的渲染机制,定制属于你的地图样式,无论是颜色、图标还是文字,都可以随心所欲。

java专栏 1455

(数字图像处理MATLAB+Python)第五章图像增强-第一节:图像增强概述和基于灰度级变换的图像增强

图像增强(Image Enhancement):指不考虑图像降质原因,利用各种数学方法和变换手段,增强图像中人们感兴趣部分或提高有用的图像特征的清晰度。从图像质量来看,图像增强提高了图像的可懂度,改善了图像的视觉效果例如在现实场景中,针对那些对比度较差、视觉效果不好的图像,我们就可以利用图像增强改善视觉质量图像增强可分为如下几种基于灰度级变换的图像增强基于直方图修正的图像增强基于照度反射模型的图像增强基于模糊技术的图像增强基于伪彩色处理的图像增强其他图像增强方法分段线性灰度级变换。

快乐江湖的博客 3333

【JS】JavaScript中的执行环境与作用域

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

aodongni1633的博客 167

支付宝域名如何加入白名单(扫码老是弹窗)

支付宝扫码之后,遇到非支付宝官方网页,请确认是否继续访问弹窗,问题解决办法。本章教程提供解决办法,亲测有效。

猿小白的博客 9191

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

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

weixin_43197654的博客 1417

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

qq_42483955的博客 612

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

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

adb96102的博客 99

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

了解JavaScript的执行环境及作用域

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

冰咖啡的专栏 1142

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的博客 266

浅谈JS执行环境和作用域

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

qq_32888087的博客 303

JavaScript之执行环境与作用域

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

但愿人长久 千里共婵娟 341

JavaScript执行环境、作用域和作用域链

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

weixin_45003524的博客 184

JS 之 执行环境和作用域链

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

狐耳 304

对js中执行环境、作用域和作用域链的理解

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

weixin_34283445的博客 149

JavaScript执行环境、作用域及this值

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

paper_crane的博客 1189

js 执行环境和作用域

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

cat_sky的博客 289
上一篇: javascript——基本类型和引用类型区分
下一篇: javascript中的this
雨中畅游
博客等级 码龄10年 100粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值