首页 > 其他分享 >11月8日总结

11月8日总结

时间:2023-11-14 12:55:49浏览次数:26  
标签:11 总结 console log 循环 事件 event loop

引言:

事件循环不是浏览器独有的,从字面上看,“循环”可以简单地认为就是重复,比如for循环,就是重复地执行for循环体中的语句,所以事件循环,可以理解为重复地处理事件,那么下一个问题是,处理的是什么事件,事件的相关信息从哪里获取。

因为我没有用nodejs做过什么项目,所以这里我暂且只关注浏览器的事件循环,但我想就“事件循环”本身而言,原理应该是相同的,不过就具体的实现可能存在一些差异。
一道面试题

相信应该有部分小伙伴和我一样,在面试中曾遇到过类似于这种问打印结果的题目。

(async function main() {
console.log(1);

setTimeout(() => {
console.log(2);
}, 0);

setTimeout(() => {
console.log(3);
}, 100);

let p1 = new Promise((resolve, reject) => {
console.log(4);

resolve(5);
console.log(6);

});

p1.then((res) => {
console.log(res);
});

let result = await Promise.resolve(7);
console.log(result);

console.log(8);
})()

这种题目就是变相的在考察事件循环的知识。

我个人感觉事件循环这个点,也是随着Promise的出现,成为了一个常见的考点。
什么是事件循环

一提到事件循环,我想很多人会和我一样,立刻想到异步、宏任务、微任务什么的。
WIKI

先不着急,我们先看下Wiki上,对事件循环的通用性描述。

In computer science, the event loop is a programming construct or design pattern that waits for and dispatches events or messages in a program. The event loop works by making a request to some internal or external "event provider" (that generally blocks the request until an event has arrived), then calls the relevant event handler ("dispatches the event"). The event loop is also sometimes referred to as the message dispatcher, message loop, message pump, or run loop.

The event-loop may be used in conjunction with a reactor, if the event provider follows the file interface, which can be selected or 'polled' (the Unix system call, not actual polling). The event loop almost always operates asynchronously with the message originator.

When the event loop forms the central control flow construct of a program, as it often does, it may be termed the main loop or main event loop. This title is appropriate, because such an event loop is at the highest level of control within the program.

简而言之,事件循环是一种编程结构或设计模式,用于在程序中等待和

标签:11,总结,console,log,循环,事件,event,loop
From: https://www.cnblogs.com/lmyy/p/17831361.html

相关文章

  • 11月7日总结
    从源代码到可运行的操作系统(前置知识)API与SDK以C语言编写的操作系统为背景进行介绍,EOS是由C语言编写的操作系统和应用程序之间一个重要的纽带就是应用程序接口(简称API)。操作系统通过开放API为应>用程序提供服务,应用程序通过使用这些API实现其功能。在操作系统或......
  • 11月10日总结
    最近在群里,有个小伙伴问了这么一道很有趣的问题:CSS能否实现,容器再某个高度下是某种表现,一旦超出某个高度,则额外展示另外一些内容为了简化实际效果,我们看这么一张示意效果图:可以看到,当容器高度没有超过某一个值时,没有箭头图标。反之,箭头图标出现。这个效果在很多场景都会出现......
  • 202311141210——《一些修改表字段的sql语句》
    ALTERTABLEuserADDCOLUMNtelCHAR(11)AFTERwechat;#添加列ALTERtablecustomermodifycolumnpasswordvarchar(200);#修改列类型ALTERTABLEuserALTERCOLUMNstatusSETDEFAULT1;#设置默认值ALTERTABLEuserMODIFYcolumnemp_idTIMESTAMPDEFAULTNULL......
  • 11.14算法
    题目岛屿数量给你一个由 '1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例1:输入:grid=[["1","1","1","1","0"],["1","1"......
  • win11安装WSL2并配置Ubuntu环境
    win11安装WSL2并配置Ubuntu环境WSL是适用于 Linux 的 Windows 子系统,可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。1    开启windows的WSL与虚拟平台支持1.1    开启虚拟化......
  • 当前不会命中断点 未加载该文档 解决方法总结
    1.工具->选项->调试->常规 2.项目属性页 3.项目属性页 4.项目属性页 ......
  • tmdb 无法连接 修改host可解决 (2023/11/14)
    tinyMediaManager的刮削服务总是失败,根本原因在于tmdb网站的DNS地址无法解析。解决方法:手动修改DNS。作者:PH34Rhttps://www.bilibili.com/read/cv18215732/?spm_id_from=333.999.collection.opus.click出处:bilibili通过 https://dnschecker.org/ 查询上述三个地址,选择在......
  • nfls 11.14
    这回感觉每个题都可做,但是每个题目貌似又是都不可以做,思路到中间然后就断了,下午补题然后再看吧。T1这个题目可以推出来的性质有:我们填入的\(b\)数组一定是若干个质数的一次方的乘积组成。当我们确定了\(b_n\)时,我们这个\(b\)序列也就唯一固定。但是最后一位怎么决策......
  • 对几种语言的数据结构的总结
    一:Java中的数据结构Java中有以下几种数据结构:线性结构:数组、链表、哈希表、队列、栈。非线性结构:堆、树(二叉树、B树、B+树、红黑树)、图。二:C语言中的数据结构C语言中常用的数据结构包括:线性结构:数组、链表、栈、队列、线性表。树形结构:二叉树、堆、哈夫曼树、红黑树。图形结构:图......
  • 如何正确使用外汇110网查平台?一键Get识别黑平台
    在外汇110网中,平台信息众多,投资者该如何通过这些信息识别黑平台?如何使用外汇110网识别黑平台? 投资者在审核平台时,可以通过在外汇110网搜索交易商名称或官网查询交易商,点击即可进入交易商信息界面。在交易商界面投资者可以重点关注以下信息:成立时间。成立时间的长短可以侧面反......