18、异步编程(一):V8是如何实现微任务的你好,我是李兵。 上节我们介绍了通用的UI线程架构,每个UI线程都拥有一个消息队列,所有的待执行的事件都会被添加进消息队列中,UI线程会按照一定规则,循环地取出消息队列中的事件,并执行事件。而JavaScript最初也是运行在UI线程中的。换句话说,...2026-02-27图解 Google V8
19、异步编程(二):V8是如何实现async、await的你好,我是李兵。 上一节我们介绍了JavaScript是基于单线程设计的,最终造成了JavaScript中出现大量回调的场景。当JavaScript中有大量的异步操作时,会降低代码的可读性, 其中最容易造成的就是回调地狱的问题。 JavaScript...2026-02-27图解 Google V8
20、垃圾回收(一):V8的两个垃圾回收器是如何工作的你好,我是李兵。 我们都知道,JavaScript是一门自动垃圾回收的语言,也就是说,我们不需要去手动回收垃圾数据,这一切都交给V8的垃圾回收器来完成。V8为了更高效地回收垃圾,引入了两个垃圾回收器,它们分别针对着不同的场景。 那这两个回收器究竟是如...2026-02-27图解 Google V8
21、垃圾回收(二):V8是如何优化垃圾回收器执行效率的你好,我是李兵。 上节我们介绍了V8使用副垃圾回收器和主垃圾回收器来处理垃圾回收,这节课我们看看V8是如何优化垃圾回收器的执行效率的。 由于JavaScript是运行在主线程之上的,因此,一旦执行垃圾回收算法,都需要将正在执行的JavaScript脚...2026-02-27图解 Google V8
22、答疑:几种常见内存问题的解决策略你好,我是李兵。 这是我们“事件循环和垃圾回收”这个模块的最后一讲。在这个模块中,我们讲了消息循环系统和垃圾回收机制,这两块内容涉及到了比较底层的知识,但是这些知识对实际的项目有着非常重要的指导作用,很多同学也比较关注这两部分内容。 今天这节答疑课,...2026-02-27图解 Google V8
结束语、我的前端学习踩坑史你好,我是李兵。 这是我们这个系列课程的最后一讲,今天我们不谈技术,我想跟你聊聊这么多年我学习前端踩过的一些坑和学习心得。 其实我早些年主要是做C/C++开发的,到了2009年,接触到了浏览器研发,这个时候我对前端并不是太熟悉,但是在开发浏...2026-02-27图解 Google V8