Day1前端知识串讲听课随笔笔记 | 青训营

119 阅读3分钟

Day1

上课!
主题: 前端语言串讲 **课程时长:**50:59
内容大纲

  • 前端语言的基本能力
  • 前端语言的协作配合
  • 你不知道的HTML
  • 扩展分享

已经学习完了html+css+JavaScript,所以这三部分的讲解过了一遍视频,没做过多笔记。

JavaScript(10天被创造出来,属实有点牛)

image.png

JavaScript七大基本类型

  1. String
  2. Number
  3. Boolean
  4. Null
  5. Undefined
  6. Symbol
  7. Object

JavaScript是单线程的。 image.png Microtask Queue:微任务队列
Macrotask Queue: 宏任务队列
Event Loop:事件循环
这一块地方老师好像讲的不太清楚,老师说先完成所有宏任务,再完成所有的微任务,微任务完成之后再完成宏任务(给我听傻了)
然后我去查阅了资料,得出结论:事件循环不断地从宏任务队列中选择任务执行,执行完当前的宏任务后,再检查微任务队列是否有任务需要执行,如果有,则依次执行所有的微任务,直到微任务队列为空。然后再选择下一个宏任务执行,周而复始,形成了一个循环。 JavaScript的执行机制涉及到异步任务的处理和事件循环机制。

当JavaScript代码执行时,会先执行主线程中的同步任务。如果遇到异步任务,例如定时器、网络请求、事件监听等,这些异步任务会被放入对应的任务队列中等待执行。

JavaScript引擎有两个主要的任务队列,即宏任务队列(Macrotask Queue)和微任务队列(Microtask Queue)。

宏任务队列(Macrotask Queue): 宏任务队列用于存放异步任务,它包括一些常见的任务类型,如定时器任务(setTimeout、setInterval)、网络请求、DOM事件等。 当主线程中的所有同步任务执行完毕后,JavaScript引擎会从宏任务队列中选择最早进入队列的任务,并执行它。

微任务队列(Microtask Queue): 微任务队列用于存放微任务,微任务是一些需要尽快执行的异步任务。常见的微任务包括Promise回调、MutationObserver回调等。当主线程中的所有同步任务执行完毕,并且没有微任务时,JavaScript引擎会从微任务队列中选择最早进入队列的任务,并执行它。 微任务的执行会在下一个宏任务之前完成。

事件循环: 事件循环是JavaScript引擎处理异步任务的机制。 它不断地从宏任务队列中选择任务执行,执行完当前的宏任务后,再检查微任务队列是否有任务需要执行,如果有,则依次执行所有的微任务,直到微任务队列为空。然后再选择下一个宏任务执行,周而复始,形成了一个循环。

简单来说,当主线程执行完同步任务后,会先执行微任务队列中的所有微任务,然后再执行宏任务队列中的一个宏任务。这个过程不断重复,形成了JavaScript的事件循环机制。

注意微任务的执行优先级比宏任务高,即微任务队列中的任务会优先执行。


下面这个图不错,可以参照这个去完善github个人介绍页的技术栈模块

image.png


希望青训营课程要是能有光标移动讲解就好了

image.png


对课程的建议

image.png

标题:前端语言串讲 - 掘金

网址:juejin.cn/course/byte…