12、栈空间和堆空间:数据是如何存储的

对于前端开发者来说,JavaScript的内存机制是一个不被经常提及的概念 ,因此很容易被忽视。特别是一些非计算机专业的同学,对内存机制可能没有非常清晰的认识,甚至有些同学根本就不知道JavaScript的内存机制是什么。 但是如果你想成为行业专家,...

浏览器工作原理与实践

13、垃圾回收:垃圾数据是如何自动回收的

在[上一篇文章]中,我们提到了JavaScript中的数据是如何存储的,并通过例子分析了原始数据类型是存储在栈空间中的,引用类型的数据是存储在堆空间中的。通过这种分配方式,我们解决了数据的内存分配的问题。 不过有些数据被使用之后,可能就不再需要了,我...

浏览器工作原理与实践

14、编译器和解释器:V8是如何执行一段JavaScript代码的

前面我们已经花了很多篇幅来介绍JavaScript是如何工作的,了解这些内容能帮助你从底层理解JavaScript的工作机制,从而能帮助你更好地理解和应用JavaScript。 今天这篇文章我们就继续“向下”分析,站在JavaScript引擎V8的视...

浏览器工作原理与实践

15、消息队列和事件循环:页面是怎么“活”起来的

前面我们讲到了每个渲染进程都有一个主线程,并且主线程非常繁忙,既要处理DOM,又要计算样式,还要处理布局,同时还需要处理JavaScript任务以及各种输入事件。要让这么多不同类型的任务在主线程中有条不紊地执行,这就需要一个系统来统筹调度这些任务,这...

浏览器工作原理与实践

16、WebAPI:setTimeout是如何实现的

在[上一篇文章]中我们介绍了页面中的事件和消息队列,知道了浏览器页面是由消息队列和事件循环系统来驱动的。 那在接下来的两篇文章中,我会通过setTimeout和XMLHttpRequest这两个WebAPI来介绍事件循环的应用。这两个WebAPI是两...

浏览器工作原理与实践

17、WebAPI:XMLHttpRequest是怎么实现的

在[上一篇文章]中我们介绍了setTimeout是如何结合渲染进程的循环系统工作的,那本篇文章我们就继续介绍另外一种类型的WebAPI——XMLHttpRequest。 自从网页中引入了JavaScript,我们就可以操作DOM树中任意一个节点,例如...

浏览器工作原理与实践
123458