美文网首页
js执行机制

js执行机制

作者: yueluoxingliu | 来源:发表于2022-01-27 21:35 被阅读0次

JavaScript是基于单线程运行的,同时又是可以异步执行的——基于事件来驱动

1.导图:

2.说明:

同步和异步任务分别进入不同的执行"场所",同步的进入主线程,异步的进入Event Table并注册函数。

当指定的事情完成时,Event Table会将这个函数移入Event Queue。

主线程内的任务执行完毕为空,会去Event Queue读取对应的函数,进入主线程执行。

上述过程会不断重复,也就是常说的Event Loop(事件循环)。

2.1 同步任务:

function outer (ot) {

    function inner(it) {

        console.log(it);

    }

    inner(20);

    console.log(ot);

}

outer(10);

-----过程------

0.代码没有执行的时候,执行栈为空栈

1. outer函数执行时,创建了一帧,这帧中包含了形参、局部变量(预编译过程),然后把这一帧压入栈中

2.然后执行 outer函数内代码,执行inner函数

3.创建新帧,同样有形参、局部变量,压入栈中

4. inner函数执行完毕,弹出栈

5. outer函数执行完毕,弹出栈

6.执行栈为空

2.2 异步任务

$.ajax({

    url: ‘localhost:/js/demo.json’,

    data: {},

    success: function (data) {

        console.log(data);

    }

});

console.log(‘run’);

-----过程------

0.Ajax 进入Event Table,注册回调函数success

1.执行console.log(‘run’)

3.ajax事件完成http网络请求线程把任务放入Event Queue中

4.主线程(调用栈)读取任务下执行success函数

相关文章

  • js引擎的执行机制

    js引擎的执行机制 JS的Event Loop是JS的执行机制,理解JS的执行,必须理解Event Loop JS...

  • js执行机制

    js执行机制

  • js定时器

    从JS执行机制说起 浏览器(或者说JS引擎)执行JS的机制是基于事件循环。 由于JS是单线程,所以同一时间只能执行...

  • js执行机制

    JavaScript的一个语言特性(也是这门语言的核心)就是单线程。什么是单线程呢?简单地说就是同一时间只能做一件...

  • JS执行机制

    前言 在稀土掘金上看到这一次,彻底弄懂 JavaScript 执行机制和从浏览器多进程到JS单线程,JS运行机制最...

  • JS执行机制

    1.JS本质是单线程执行任务,但是单线程效率不高,所以将任务分成了同步任务和异步任务。 >(PS:单线程就像银行只...

  • JS执行机制

    一直以来,对JS的执行机制都是模棱两可,知道今天看了文章—《这一次,彻底弄懂JavaScript执行机制》和《Ev...

  • js执行机制

    面试官老喜欢出这种题目问你,请说下这段代码的输出,其中就会有坑,之所以说是坑是因为你不了解,懂了就是云淡风轻,不懂...

  • js执行机制

    JavaScript执行机制,重点有两点: 1.JavaScript是一门单线程语言。2.Event Loop(事...

  • JS执行机制

    引言 众所周知,JS自出生之日起就被设定为了一门单线程的语言,所谓单线程就是指任务执行的顺序需要一个接一个,如果其...

网友评论

      本文标题:js执行机制

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