校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > js语言和框架 > 语法相关-操作符相关
题目

js异步机制及其原理?

解答

(1)js的工作机制:
    当线程中没有执行任何同步代码的前提下才会执行异步代码,setTimeout是异步代码,所以setTimeout只能等js空闲才会执行,但如果在其之前存在死循环,死循环是永远不会空闲的,所以setTimeout也永远不会执行。

    即使setTimeout为0,他也是等js引擎的代码执行完之后才会插入到js引擎线程的最后执行。

(2)js是如何处理异步操作的?
    js 引擎执行异步代码而不用等待,是因有为有 消息队列和事件循环。

        · 消息队列:消息队列是一个先进先出的队列,它里面存放着各种消息。

        · 事件循环:事件循环是指主线程重复从消息队列中取消息、执行的过程。

C 4条回复 评论
波风小蒙

迷茫很久也看过各式各样的答案,选不出一条自己的路真的很焦灼。没有想到原来大家的路也是一样的颠簸。

发表于 2021-09-13 12:45:00
0 0
厂牌代理人

浏览器的渲染引擎和js的解析引擎是冲突的

发表于 2020-09-24 22:41:26
0 0
虧嵤

js是单线程语言,无法同步执行多个任务;js通过回调函数执行异步机制。

发表于 2020-09-24 11:08:36
0 0
Akihi

当线程中没有执行任何同步代码的前提下才会执行异步代码

发表于 2020-09-24 10:21:22
0 0