您现在的位置是:亿华云 > IT科技
通过可视化来学习JavaScript事件循环
亿华云2025-10-09 06:55:26【IT科技】6人已围观
简介事件循环,是每个 JavaScript 开发人员都必须要掌握的知识,开始学的时候,理解起来可能有点混乱。但我是一个视觉学习者,所以我想我会尝试通过低分辨率 gif 以视觉方式来解释它,以便帮助你更好的
事件循环,通过是可视每个 JavaScript 开发人员都必须要掌握的知识,开始学的化学环时候,理解起来可能有点混乱。通过但我是可视一个视觉学习者,所以我想我会尝试通过低分辨率 gif 以视觉方式来解释它,化学环以便帮助你更好的通过学习和理解事件循环。
首先,可视什么是化学环事件循环,为什么要学习它?通过
JavaScript 是单线程的:一次只能运行一个任务。
通常你会觉得这没什么大不了的可视,但是化学环,假设您正在运行一个需要 30 秒的通过任务,在该任务期间,可视我们等待 30 秒才能发生其他任何事情(JavaScript 默认在浏览器的化学环主线程上运行,所以整个 UI 都卡住了),但是,我想没有人想要一个响应很慢有点卡顿的网站。
幸运的是b2b供应网,浏览器为我们提供了一些 JavaScript 引擎本身不提供的功能:Web API。这包括 DOM API、setTimeout、HTTP 请求等。这可以帮助我们创建一些异步的、非阻塞的行为。
当我们调用一个函数时,它会被添加到调用堆栈中。调用堆栈是 JS 引擎的一部分,这不是特定于浏览器的,它是一个堆栈,这意味着它是先进后出的(想想一堆煎饼)。当一个函数返回一个值时,它会从堆栈中弹出。
响应函数返回一个 setTimeout 函数。setTimeout 是由 Web API 提供给我们的:它让我们可以在不阻塞主线程的情况下延迟任务。我们传递给 setTimeout 函数的回调函数,箭头函数 () => { return Hey } 被添加到 Web API。源码库与此同时,setTimeout 函数和 respond 函数从堆栈中弹出,它们都返回了它们的值!
在 Web API 中,计时器的运行时间与我们传递给它的第二个参数一样长,即 1000 毫秒。回调不会立即添加到调用堆栈中,而是传递给称为队列的东西。
这可能是一个令人困惑的部分:这并不意味着回调函数在 1000 毫秒后被添加到调用堆栈(因此返回一个值)!它只是在 1000 毫秒后被添加到队列中。但这是一个队列,函数必须等待轮到它!
现在,我们一直在等待的部分......事件循环完成其唯一任务的时间:将队列与调用堆栈连接!如果调用堆栈是空的,那么,如果所有先前调用的函数都返回了它们的值,并且已经从堆栈中弹出,云南idc服务商则队列中的第一项被添加到调用堆栈中。在这种情况下,没有调用其他函数,这意味着当回调函数成为队列中的第一项时,调用堆栈为空。
回调被添加到调用堆栈,被调用,并返回一个值,然后从堆栈中弹出。
阅读一篇文章很有趣,但你只有通过一遍又一遍地实际操作它才能完全理解学会。如果我们运行以下命令,请尝试找出记录到控制台的内容:
让我们快速看一下在浏览器中运行这段代码时发生了什么:
我们调用 bar。bar 返回一个 setTimeout 函数。
我们传递给 setTimeout 的回调被添加到 Web API,setTimeout 函数和 bar 从调用堆栈中弹出。
计时器运行,同时 foo 被调用并记录First。foo 返回(未定义),baz 被调用,回调被添加到队列中。
baz日志Third。事件循环在 baz 返回后看到调用堆栈为空,之后回调被添加到调用堆栈中。
回调记录Second。
总结
以上就是我跟您分享关于事件循环的内容,希望这能让您对学习事件循环感到轻松有趣!如果它仍然看起来令人困惑,请不要担心,最重要的是了解某些错误/行为可能来自哪里,以便有效地从谷歌中搜索到正确的解决方案。
如果您觉得今天内容对您有用的话,请记得点赞我,关注我,并将它分享给您身边的朋友,也许能够帮助到他,最后,感谢阅读,祝编程愉快!
很赞哦!(98733)
相关文章
- 在此期间,他们每天仍在这里卖大米,在理财方面个人感情有待提高。因为现在是收米的最佳时机。
- 域名在哪些阶段能赎回?总结域名的生命历程
- 如何让域名能永久使用?域名永久使用要怎么处理?
- CentOS下MySQL 8.0安装部署,超详细!
- 审核通过的域名将显示在域名竞拍页面,并进入正式拍卖期,买家可以在拍卖周期内出价,加价幅度与拍卖保证金说明,点此查看。
- Gartner研究总监孙鑫:借助数据编织完善数据中台建设,盘活企业数据资产
- MyBatis批量插入数据你还在用foreach?你们的服务器没崩?
- 盘点一道带“坑” Python 基础题目(附源码)
- 第六:这个圈子里的域名确实是赚钱的一些大玩家,至于小米农,有多少赚钱?几乎没有,也就是说,轿子里只有一个人,而且大多数人都抬着轿子。
- 核心特性全新升级!巨杉数据库5.0将正式发布