返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么理解JS栈和执行上下文
  • 662
分享到

怎么理解JS栈和执行上下文

2024-04-02 19:04:59 662人浏览 八月长安
摘要

本篇内容主要讲解“怎么理解js栈和执行上下文”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解JS栈和执行上下文”吧! 栈栈,存储货物或供旅客住宿

本篇内容主要讲解“怎么理解js栈和执行上下文”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解JS栈和执行上下文”吧!

 栈

栈,存储货物或供旅客住宿的地方,可引申为仓库

数据结构中的栈

栈是一组数据的存放方式,特点是先进后出,后进先出,也有人是通俗的说吃吐原理,最后吃的最新吞出来,看看大概的图示

怎么理解JS栈和执行上下文
怎么理解JS栈和执行上下文

代码小案例

function one() {   function two() {       function three() {           debugger;       }       three();   }   two(); } one();

执行上面的js,debugger可以看到,最新进入的one()-two()-three(),但是执行完后最先出栈的是three()最后是one()

怎么理解JS栈和执行上下文
怎么理解JS栈和执行上下文

内存区域

  • 栈也是是存放数据的一种内存区域

  • 程序运行的时候,需要内存空间存放数据。一般来说,系统会划分出两种不同的内存空间:一种叫做stack(栈),另一种叫做heap(堆)

  • stack是有结构的,每个区块按照一定次序存放,可以明确知道每个区块的大小

  • heap是没有结构的,数据可以任意存放。因此,stack的寻址速度要快于heap  只要是局部的、占用空间确定的数据,一般都存放在stack里面,否则就放在heap里面,所有的对象都存放在heap

function task() {     var a = 1;     var b = 2;     var c = {         name: 'zhufeng',         age: 10     } } task();

上面的 案例 a、b是放在stack, object对象c则存放在heap,当然因为js是类型语言中没有一定要区分放在栈堆的概念。

队列

队列是一种操作受限制的线性表

特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作

进行插入操作的端称为队尾,进行删除操作的端称为队头

因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出线性表;也有一个通俗的说法:吃拉法则,最先吃的就拉出来

怎么理解JS栈和执行上下文

执行上线文(这节重点)

当函数运行时,会创建一个执行环境,这个执行环境就叫执行上下文(Execution Context)

执行上下文中会创建一个对象叫作变量对象(Value  Object),基础数据类型都保存在变量对象中。这里说明一下,执行上下文中不仅仅有变量对象,还有很多的对象比如:this。

引用数据类型的值保存在堆里,我们通过操作对象的引用地址来操作对象

代码示例

function task(){     var a = 1;     var b = {         name:'zhufei'     }     debugger     var c = [1,2,3]; }

这里大家可以看到,a是值是1直接存在栈中,而b、c是对象所以存的是对应的内存地址

怎么理解JS栈和执行上下文

下面的断点大家也可以清晰的看到,当前的执行上下文,varliable object  存的是当前函数执行使用需要用到的变量,其他的没哟

怎么理解JS栈和执行上下文

数据类型(补一个面试常问的)

JS中有七种基本数据类型

  • 六种基本数据类型 Boolean Null Undefined Number String Symbol

  • 一种引用类型 object {} [] /^$/ new Date() Math

到此,相信大家对“怎么理解JS栈和执行上下文”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么理解JS栈和执行上下文

本文链接: https://lsjlt.com/news/84772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解JS栈和执行上下文
    本篇内容主要讲解“怎么理解JS栈和执行上下文”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解JS栈和执行上下文”吧! 栈栈,存储货物或供旅客住宿...
    99+
    2024-04-02
  • JavaScript中执行上下文和执行栈
    目录执行上下文?执行上下文的类型执行栈创建执行上下文this绑定词法环境执行上下文? 执行上下文是评估和执行JavaScript代码的环境的抽象概念。个人理解:js执行的先后顺序/函...
    99+
    2024-04-02
  • JavaScript执行上下文和执行栈是什么
    本篇内容介绍了“JavaScript执行上下文和执行栈是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是执行上下文?简而言之,执行上...
    99+
    2023-06-27
  • JavaScript执行上下文与执行栈是什么
    这篇文章主要介绍“JavaScript执行上下文与执行栈是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript执行上下文与执行栈是什么”文章能帮助...
    99+
    2024-04-02
  • JavaScript中的执行上下文和执行栈的概念
    本篇内容介绍了“JavaScript中的执行上下文和执行栈的概念”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • js怎么创建执行上下文
    本篇内容主要讲解“js怎么创建执行上下文”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js怎么创建执行上下文”吧!创建一个执行分为两个阶段:创建阶段和执行阶段。创建阶段会发生三件事:绑定this...
    99+
    2023-06-25
  • Js怎么存储执行上下文
    这篇文章主要介绍“Js怎么存储执行上下文”,在日常操作中,相信很多人在Js怎么存储执行上下文问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Js怎么存储执行上下文”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-25
  • JavaScript中如何执行上下文和堆栈
    小编给大家分享一下JavaScript中如何执行上下文和堆栈,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是执行上下文?Ja...
    99+
    2024-04-02
  • 详解JavaScript中的执行上下文及调用堆栈
    目录一、执行上下文是什么二、执行上下文栈是什么三、执行上下文栈的过程细节(一)创建阶段(二)执行阶段一、执行上下文是什么 代码运行是在一定的环境之中运行的,这个运行环境我们就成为执行...
    99+
    2024-04-02
  • JavaScript怎么执行上下文
    这篇文章主要介绍了JavaScript怎么执行上下文,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、怎么描述执行上下文1.1 本节知识导图:1.2 如果描述执行上下文当函数...
    99+
    2023-06-14
  • javascript执行上下文详解
    目录简介javascript代码的执行过程编译阶段var变量提升与let和const作用域单个执行上下文中变量的查找规则调用栈作用域链词法作用域闭包闭包的回收从上下文角度讲this简...
    99+
    2023-05-18
    javascript执行上下
  • js执行上下文的类型有哪些
    这篇文章主要讲解了“js执行上下文的类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“js执行上下文的类型有哪些”吧!全局上下文:是基础,默认上下文类型,任何不在函数内的代码都在全局上...
    99+
    2023-06-25
  • 深入理解函数执行上下文this
    目录JavaScript 中的 this 是什么全局执行上下文中的 this函数执行上下文中的 this1. 通过函数的 call 方法设置2. 通过对象调用方法设置3. 通过构造函...
    99+
    2022-11-13
    函数执行上下文 this 执行上下文 this
  • JavaScript中执行上下文的原理是什么
    这期内容当中小编将会给大家带来有关JavaScript中执行上下文的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。执行上下文执行上下文是当前代码的执行环境。执行上下文主要是三种类型:全局执行上下...
    99+
    2023-06-15
  • JavaScript中执行上下文和执行机制的示例分析
    这篇文章主要介绍JavaScript中执行上下文和执行机制的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!线程和进程说js中的执行上下文和js执行机制之前我们来说说线程和进程...
    99+
    2024-04-02
  • JavaScript执行上下文中的this怎么使用
    这篇文章主要讲解了“JavaScript执行上下文中的this怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript执行上下文中的this怎么使用”吧!前言在对象内部的方...
    99+
    2023-07-05
  • JavaScript函数执行上下文的this怎么调用
    今天小编给大家分享一下JavaScript函数执行上下文的this怎么调用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Ja...
    99+
    2023-07-04
  • JS中的执行上下文、词法环境和词法作用域都是什么意思
    在JavaScript中,理解执行上下文(Execution Context)、词法环境(Lexical Environment)和词法作用域(Lexical Scope)是非常重要的。1、执行上下文:是JavaScript代码运行时的环境...
    99+
    2023-10-29
    词法 都是 上下文
  • JavaScript 执行上下文的视角详解this使用
    目录前言全局执行上下文中的 this函数执行上下文中的 thisthis 的设计缺陷以及应对方案1. 嵌套函数中的 this 不会从外层函数中继承2. 普通函数中的 this 默认指...
    99+
    2023-02-27
    JavaScript 执行上下文 this JavaScript this
  • flask源码解析之上下文为什么用栈
    楔子   我在之前的文章《flask源码解析之上下文》中对flask上下文流程进行了详细的说明,但是在学习的过程中我一直在思考flask上下文中为什么要使用栈完成对请求上下文和应用上下文的入栈和出栈操作,而且栈所维护的无非不就是一个列表,...
    99+
    2023-01-30
    下文 什么用 源码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作