iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JavaScript中怎么调用栈
  • 203
分享到

JavaScript中怎么调用栈

2024-04-02 19:04:59 203人浏览 安东尼
摘要

javascript中怎么调用栈,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1:基本概念栈(stack):用来保存简单的数据字段。堆(hea

javascript中怎么调用栈,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1:基本概念

栈(stack):用来保存简单的数据字段。

堆(heap):用来保存栈中简单的数据字段对指针的引用。

队列:是一种先进先出的线性数据结构

函数的调用的进栈和出栈的顺序,遵循 先进后出 的原则。

空间分配: 堆:一般由程序员释放,如果程序员不释放就会在结束时由OS回收;

栈:一般由操作系统自动分配释放。

缓存方式: 堆:存放在二级缓存中,生命周期一般是由虚拟机的垃圾回收算法决定的;

栈:存放在一级缓存中,被调用时处于存储空间,调用完立即释放。

操作数据:堆栈(先进后出),队列(先进先出)。

调用栈是一种栈结构,它用来存储计算机程序执行时候其活跃子程序的信息。它是一种LIFO的数据结构,将记录代码运行时的执行上下文。当遇到某个函数的调用语句时,它将会记录当前的执行上下文,将函数入栈,并为其创建一个新的执行上下文。(比如什么函数正在执行,什么函数正在被这个函数调用等等信息)。

调用栈是解析器的一种机制。

javascript是一门单线程语言,主线程在同一时间只能处理一件事。那javascript是如何处理处理函数的调用关系的?

答案是——调用栈。

2:Event Loop(事件循环)

JavaScript是一个单线程,它执行的所有代码都放在下面这个Call Stack里面,当Call  Stack执行完毕之后,就会再右侧的队列里面找任务,如果有微任务,就会先执行微任务,再去执行宏任务。

JavaScript中怎么调用栈

事件循环:就是同步任务进入主线程,异步任务加入到任务队列中。等主线程的任务执行完就去执行任务队列中的任务,这个过程会不断重复。所有同步任务都在主线程上执行,形成一个执行栈。主线程之外,  存在一个任务队列(task queue),  异步任务有了运行结果会在任务队列之中放置一个任务。执行栈中的所有同步任务执行完毕后读取任务队列(先读取微任务、宏任务)不断重复上面的第三步。

js既然是单线程那么肯定是排队执行代码,怎么去排这个队就是Event Loop,虽然js是单线程但是浏览器不是单线程。

console.log('script start');  setTimeout(function() {  console.log('timeout1'); }, 10);  new Promise(resolve => {  console.log('promise1');  resolve();  setTimeout(() => console.log('timeout2'), 10); }).then(function() {  console.log('then1') })  console.log('script end');  // * script start * promise1 * script end * then1 * timeout1 * timeout2

3:宏任务(Mask-task)

  • setTimeout

  • setInterval

  • I/O

特点:由JavaScript线程外的宿主线程执行,比如,定时器触发线程setTimeout、setInterval,异步Http请求线程。JavaScript线程不空闲宏任务永远没有执行机会。

for(let i=0; i<100000000; i++) {}  setTimeout(function() {  console.log('setTimeout1'); }, 1000);  setTimeout(function() {  console.log('setTimeout2'); }, 2000);

4:微任务(Mask-task)

  • promise

特点:由JavaScript线程维护,它的执行时机是在主线程所有可执行代码执行完成后执行,浏览器渲染DOM前会全部执行。

看完上述内容,你们掌握JavaScript中怎么调用栈的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网node.js频道,感谢各位的阅读!

--结束END--

本文标题: JavaScript中怎么调用栈

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript中怎么调用栈
    JavaScript中怎么调用栈,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1:基本概念栈(stack):用来保存简单的数据字段。堆(hea...
    99+
    2022-10-19
  • JavaScript栈怎么调用
    本篇内容介绍了“JavaScript栈怎么调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是栈?栈全...
    99+
    2022-10-19
  • JavaScript中函数调用栈是怎么工作的
    这篇文章将为大家详细讲解有关JavaScript中函数调用栈是怎么工作的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。合理地处理堆栈信息能使你清除无用的数据, 而只专注于...
    99+
    2022-10-19
  • Java,JavaScript和ABAP怎么取得调用栈Callstack
    本篇内容主要讲解“Java,JavaScript和ABAP怎么取得调用栈Callstack”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java,JavaScript和ABAP怎么取得调用栈Ca...
    99+
    2023-06-04
  • 调试JavaScript代码如何打印调用堆栈
    小编给大家分享一下调试JavaScript代码如何打印调用堆栈,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打印调用堆栈可以通过调试面板查看当前代码的调用堆栈,也...
    99+
    2023-06-27
  • 详解JavaScript中的执行上下文及调用堆栈
    目录一、执行上下文是什么二、执行上下文栈是什么三、执行上下文栈的过程细节(一)创建阶段(二)执行阶段一、执行上下文是什么 代码运行是在一定的环境之中运行的,这个运行环境我们就成为执行...
    99+
    2022-11-12
  • JavaScript中怎么实现一个栈结构
    JavaScript中怎么实现一个栈结构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.1.什么是数据结构数据结构就是在计算...
    99+
    2022-10-19
  • JavaScript中怎么调用函数
    这期内容当中小编将会给大家带来有关JavaScript中怎么调用函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先让我们创建一个简单的函数,这个函数将在将在下文中使用...
    99+
    2022-10-19
  • JavaScript错误和调用栈常识都有哪些
    JavaScript错误和调用栈常识都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。大多数工程师可能并没留意过 JS 中错误对象、错误堆...
    99+
    2022-10-19
  • JavaScript如何实现显示函数调用堆栈
    本篇内容介绍了“JavaScript如何实现显示函数调用堆栈”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Firebug提供了console...
    99+
    2023-07-04
  • 在C++ 代码中怎么获取函数调用栈信息
    这篇文章主要介绍“在C++ 代码中怎么获取函数调用栈信息”,在日常操作中,相信很多人在在C++ 代码中怎么获取函数调用栈信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在C++ 代码中怎么获取函数调用栈信息...
    99+
    2023-06-15
  • HTML中怎么调用javascript文件
    这篇文章主要介绍“HTML中怎么调用javascript文件”,在日常操作中,相信很多人在HTML中怎么调用javascript文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • Flex中怎么调用JavaScript代码
    Flex中怎么调用JavaScript代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Flex调用JavaScript代码在Flex开发中有时候需要调用JS代码,例如关闭...
    99+
    2023-06-17
  • javascript中this指向怎么调用
    本篇内容介绍了“javascript中this指向怎么调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JavaScript由于其在运行期进...
    99+
    2023-07-04
  • html中怎么调用JavaScript代码
    这篇“html中怎么调用JavaScript代码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“html中怎么调用JavaSc...
    99+
    2023-07-06
  • javascript怎么调用css
    这篇文章主要介绍了javascript怎么调用css的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript怎么调用css文章都会有所收获,下面我们一起来看看吧。一、内联样式内联样式可以直接应用于HT...
    99+
    2023-07-06
  • 怎么使用Node.js实现JavaScript全栈开发
    这篇文章主要介绍了怎么使用Node.js实现JavaScript全栈开发,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。js有什么特点1、js属于一种解释性脚本语言;2、在绝大...
    99+
    2023-06-10
  • nodejs超出最大的调用栈错误怎么办
    这篇文章将为大家详细讲解有关nodejs超出最大的调用栈错误怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我默默的回到电脑前,努力工作的一天又开始了。由于此表数据量...
    99+
    2022-10-19
  • JavaScript中怎么异步调用框架
    本篇文章为大家展示了JavaScript中怎么异步调用框架,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。调用入口链式调用存在Async.go方法和Async.cha...
    99+
    2022-10-19
  • 看JavaScript中怎么调用C#函数
    本篇文章为大家展示了看JavaScript中怎么调用C#函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。关键代码如下:Default.aspx.cs    ...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作