首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS事件循环之宏任务和微任务

众所周知,JS 是一门单线程语言,可是浏览器又能很好的处理异步请求,那么到底是为什么呢? JS 的执行环境一般是浏览器和 Node.js,两者稍有不同,这里只讨论浏览器环境下的情况。...JS 执行过程中会产生两种任务,分别是:同步任务和异步任务。 同步任务:比如声明语句、for、赋值等,读取后依据从上到下从左到右,立即执行。...#任务队列(Event Queue) 任务队列中的任务也分为两种,分别是:宏任务(Macro-take)和微任务(Micro-take) 宏任务主要包括:scrip(JS 整体代码)、setTimeout...微任务[],宏任务[timeout] 宏任务: 输出:timeout timeout 出队,宏任务清空 注意:任务队列(宏任务和微任务)是栈(Stack)结构,执行时遵循先进后出(LIFO) 的原则 #setTimerout...#参考 知乎-【JS】深入理解事件循环,这一篇就够了!

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

# 一次搞懂 EventLoop

# 一次搞懂 EventLoop 众所周知,JS 是一门单线程语言,可是浏览器又能很好的处理异步请求,那么到底是为什么呢?...JS 的执行环境一般是浏览器和 Node.js,两者稍有不同,这里只讨论浏览器环境下的情况。 JS 执行过程中会产生两种任务,分别是:同步任务和异步任务。...# 产生原因 偶然在阅读一篇博客时发现的,觉得写的很清楚,就拿过来: 以下内容来自《深入理解Vue.js实战-编码思维转变》open in new window # GUI 与事件 GUI(图形用户界面...----JavaScript 中没有任何代码时立即执行的,都是进程空闲时尽快执行 # setTimerout 并不准确 由上我们已经知道了 setTimeout 是一个宏任务,会被添加到宏任务队列当中去...# 参考 知乎-【JS】深入理解事件循环,这一篇就够了!

6810

JS

10030

JS代码混淆 | js 逆向系列

/UglifyJS/ https://github.com/LiPinghai/UglifyJSDocCN/blob/master/README.md 使用方法 npm install uglify-js...-g uglifyjs example.js -c -m --mangle-props -c 代码压缩 -m 代码混淆 --mangle-props 混淆属性名 -b 美化显示 // 原代码 const...JShaman https://www.jshaman.com/ JShaman 是国内公司开发的js代码加密商业产品 免费版可以直接使用 // 原代码 const person = { age...我们输出一下 这里我们就可以对比 eval packer 了,它只是简单的字符串替换,即使将原代码中的部分提取出来,通过数组、字典等各种形式存储、拼接、替换等,最终进行还原,这里面没有利用到复杂的语法以及js...console.log(c) 这次我们设计三个返回值,分别是函数定义、数值、字符串 看到这,我都蒙了,经过查询资料,我找到了两个维度的复杂的原因 JavaScript 中函数只能有一个返回值,你就说这玩意如果没学过 js

78110

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券