JS面试题:说一下js单线程的理解?

这篇具有很好参考价值的文章主要介绍了JS面试题:说一下js单线程的理解?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    js是单线程的,内部要处理的任务分同步任务、异步任务

    异步任务分微任务、宏任务

    执行顺序:【又称 事件循环机制 】

    先执行同步任务,遇到异步宏任务则将异步宏任务放入宏任务队列中,遇到异步微任务则将异步微任务放入微任务队列中。当所有同步任务执行完毕后,再将异步微任务从队列中调入主线程执行,微任务执行完毕后再将异步宏任务从队列中调入主线程执行,一直循环直至所有任务执行完毕。

    微任务和宏任务有哪些:

        宏任务一般是:script、setTimeout、setInterval、I/O、UI交互事件、postMessage、MessageChannel

        微任务:Promise.then、Object.observe、MutationObserver

    示例:

 setTimeout(function(){      console.log(1);  });  new Promise(function(resolve){              console.log(2);      resolve();  }).then(function(){              console.log(3);  }).then(function(){      console.log(4)  });  console.log(5);  // 2 5 3 4 1

        遇到setTimout,异步宏任务,放入宏任务队列中

        遇到new Promise,new Promise在实例化的过程中所执行的代码都是同步进行的,所以输出2

        Promise.then,异步微任务,将其放入微任务队列中

        遇到同步任务console.log(5);输出5;主线程中同步任务执行完

        从微任务队列中取出任务到主线程中,输出3、 4,微任务队列为空

        从宏任务队列中取出任务到主线程中,输出1,宏任务队列为空文章来源地址https://www.toymoban.com/news/detail-824263.html

到了这里,关于JS面试题:说一下js单线程的理解?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 有趣且重要的JS知识合集(18)浏览器实现前端录音功能

    兼容多个浏览器下的前端录音功能,实现六大录音功能: 1、开始录音 2、暂停录音 3、继续录音 4、结束录音 5、播放录音 6、上传录音 初始状态: 开始录音: 结束录音: 录音流程 : 示例中的三个按钮其实包含了六个上述功能,点击开始时开始录音,可以暂停/结束录音,此

    2024年02月04日
    浏览(51)
  • 【JavaScript】深度理解js的函数(function、Function)

    学了这么久的JavaScript,函数在JavaScript中最常用之一,如果你不会函数,你就不会JavaScript。 函数就是Function对象,一个函数是可以通过外部代码调用的一个“子程序”,它是头等(first-class)对象,因为它们可以像任何其他对象一样具有属性和方法 。瞧瞧它的定义,注定它能

    2024年01月21日
    浏览(45)
  • (05)VUE/JS 保留小数方法合集 (保留两位为例)

    分别从四舍五入和是否自动补0这两个方面进行入手。 1、toFixed()函数 注意:此方法将数值类型的数据改变成了字符串类型 1.Math.floor()和Math.ceil()函数 注意:此方法不改变数据类型 2、字符串匹配 注意:此方法先将数据转换为字符串,最后再转为数值类型, 不会四舍五入,字

    2024年02月16日
    浏览(40)
  • 前端经典面试题 | 吊打面试官系列 之 说说你对TypeScript 和 JavaScript的理解

    🖥️ 前端经典面试题 专栏:吊打面试官系列 之 说说你对TypeScript 和 JavaScript的理解 🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 ✨ 个人主页:CoderHing的个人主页 🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ 👉 你的一键三连是我更新的最大动力❤️ 目录 一、回答

    2024年01月17日
    浏览(47)
  • jQuery.js - 前端必备的Javascript库

    作者: WangMin 格言: 努力做好自己喜欢的每一件事 jQuery.js 是什么? jQuery是一个快速简洁、免费开源易用的JavaScript框架, 倡导写更少的代码,做更多的事情 。它封装JavaScript常用的功能代码,提供了一种简便的JavaScript设计模式,以及我们开发中常用到的操作DOM的API,优化HTML文

    2024年02月05日
    浏览(69)
  • 【前端面试题——JS篇】

    Javascript的数据类型分为基本数据类型和复合数据类型; 基本数据类型有:数组,布尔,字符串,symbole,undefined,null 复合数据类型:object,function 基本数据类型存储在栈中 引用数据类型存储在堆中 Javascript 是一门单线程的语言,意味着同一时间内只能做一件事,但是这并不

    2023年04月18日
    浏览(26)
  • JS前端高频面试

    JS数据类型有哪些,区别是什么 js数据类型分为原始数据类型和引用数据类型。 原始数据 类型包括:number,string,boolean,null,undefined,和es6新增的两种类型:bigint 和 symbol。(Symbol是一个函数,会返回一个Symbol类型的值,每个Symbol函数返回的都是唯一的,可以作为对象的k

    2024年02月22日
    浏览(44)
  • web前端框架JS学习之JavaScript类型转换

    vascript有多种数据类型,如字符串、数字、布尔等,可以通过typeof语句来查看变量的数据类型。数据类型转换就是数据类型之间相互转换,比如把数字转成字符串、把布尔值转成字符串、把字符串转成数字等,这在工作也是经常碰到的。 本期我们就给大家说说web前端框架JS学

    2024年02月10日
    浏览(57)
  • 【精选】前端JS面试题35个

    1.问:什么是匿名函数?作用是什么?           答:没有名字的函数就是匿名函数,作用有三,把函数当作变量赋值,把函数当作参数(回调函数),把函数当作另一个函数的返回值(闭包)         2.什么是回调函数?为什么需要回调函数?           答:一个被当作函数参数的函

    2024年02月12日
    浏览(31)
  • 【前端灵魂脚本语言JavaScript⑤】——JS中数组的使用

    🐚 作者: 阿伟 💂 个人主页: Flyme awei 🐋 希望大家多多支持😘一起进步呀! 💬 文章对你有帮助👉关注✨点赞👍收藏📂 第一种: var 数组名 = new Array(); 创建一个空数组 第二种: var arr2 = new Array(10); 创建一个定长为10的数组 第三种 var arr3 = new Array(a,b,c); 创建时直接指定元素值

    2023年04月08日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包