美文网首页
javascript的运行机制---栈

javascript的运行机制---栈

作者: 无崖老师 | 来源:发表于2018-05-04 11:36 被阅读11次

不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出内容和顺序。因为javascript是一门单线程语言,所以我们可以得出结论:

javascript是按照语句出现的顺序执行的,看到这里读者要打人了:我难道不知道js是一行一行执行的?还用你说?稍安勿躁,正因为js是一行一行执行的,所以我们以为js都是这样的:

运行的最终结果是132,为什么结果不是23呢?

下面我们来分析一下代码运行的入栈和出栈的过程;

首先当调用函数bar()时,此函数就会先入栈,执行console.log(1);

由上图可知:控制台先打印出结果1,执行完毕之后在出栈。   再执行函数bar内部的函数foo,于是函数foo也入栈了。

执行函数foo的内部代码,调用函数        ,于是函数par()也要入栈。

由于函数par()内部执行异步函数setTimeout(),异步函数则会由浏览器内核timer模块来处理

接着在执行par函数中的console.log(3),控制台打印结果为3 ,此时栈的代码执行完毕后,会按照栈的特点进行先进后出,后进先出顺序进行出帐顺序:先函数par()----》后函数foo() ------》最后函数bar

相关文章

  • 2019-11-18-本周学习周报

    学习总览 JavaScript 运行机制渲染引擎JavaScript引擎调用栈事件循环 CSS 盒模型的理解 HT...

  • javascript的运行机制---栈

    不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代...

  • JavaScript之运行机制及 Event Loop

    JavaScript之运行机制及 Event Loop 1. JavaScript是单线程 JavaScript语...

  • 异步/回调

    单线程的JavaScript 说起异步,就要先说说JavaScript运行机制。我们知道,JavaScript是单...

  • JavaScript执行机制、Event Loop

    一、运行机制 JavaScript是单线程运行机制。 为什么JavaScript是单线程?单线程就是说,js在同一...

  • 2018-03-26

    JavaScript 运行机制初探 1.为什么JavaScript是单线程? JavaScript语言的一大特点就...

  • 大白话讲解JavaScript 执行机制,一看就懂

    JavaScript的运行机制 1.JavaScript为什么是单线程?JavaScript语言的一大特点就是单线...

  • 讲解JavaScript 执行机制

    JavaScript的运行机制 1.JavaScript为什么是单线程? JavaScript语言的一大特点就是单...

  • 01-整体生态概况

    技术栈概览 JavaScript & TypeScript 目前前端技术栈主要都使用 JavaScript 开发。...

  • JS notebook goods

    JS 机制 JavaScript异步机制 Excuse me?这个前端面试在搞事! JavaScript 运行机制...

网友评论

      本文标题:javascript的运行机制---栈

      本文链接:https://www.haomeiwen.com/subject/wahdrftx.html