![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
精学JS
文章平均质量分 94
万邺
如果有梦,那一定是蓝色
展开
-
精学JS:垃圾回收
本篇主要通过讲解 引擎底层的垃圾回收机制,了解更多的浏览器内核层面的东西,从而对 的内存管理以及内存溢出等形成一定的认识。在开始前,思考两个问题: 不管是什么样的计算机程序语言,运行在对应的代码引擎上,对应的使用内存过程大致逻辑是一样的,可以分为这三个步骤:与其他需要手动管理内存的语言不太一样的地方是,在 中,当我们创建变量(对象,字符串等)的时候,系统会自动给对象分配对应的内存。来看下面的例子。 当系统经过一段时间发现这些变量不会再被使用的时候,会通过垃圾回收机制的方式来处理掉这些变原创 2022-06-10 16:13:37 · 227 阅读 · 0 评论 -
精学JS:浏览器中的 EventLoop
无论是浏览器端还是服务端,都在使用 Eventloop,虽然两者机制不同,但都利用了 JavaScript语言的单线程和非阻塞的特点。 先讲解浏览器端的 Eventloop的运行机制,对浏览器端有了一定的理解之后,再设计一些 Node.js的 Eventloop的底层逻辑。 Eventloop 是 JavaScript引擎异步编程背后需要特别关注的知识点。JS在单线程上执行所有操作,虽然是单线程,但是能够高效地解决问题,并能给我们带来一种“多线程”的错觉,这其实是通过使用一些比较合理的数据结构来达到此效原创 2022-06-10 15:48:02 · 188 阅读 · 0 评论 -
精学JS:宏任务 & 微任务的运行机制
首先分析宏任务和微任务的运行机制,并针对日常开发中遇到的各种宏任务&微任务的方法,结合一些例子来看看代码运行的顺序逻辑,把这部分知识点重新归纳和梳理。 在日常开发中,例如 setTimeout和 promise都是经常会使用到的 JS方法。当这些方法变多了之后,再结合 JS的异步编程代码混合使用,最终的执行顺序也经常会让开发者迷惑,因此要把这些问题搞清楚,这部分还是有必要好好学习一下。在开始前请先思考一下:开始讲解正式内容之前,我们先看一段代码,算是开胃的前菜,如果之前对这部分知识稍有了解,一般都应该可以原创 2022-06-10 00:24:47 · 1594 阅读 · 0 评论 -
精学JS:浏览器引擎编译执行JS
分析浏览器引擎对 代码的编译情况,并结合日常的 开发经验,重新理解底层的编译解析机制。对其底层原理的理解,将有助于理解前端的跨端应用,以及一套代码生成多种小程序相关框架的底层逻辑.在开始前请先思考:当前百花齐放的编程语言,主要分为编译型语言和解释型语言。 像Java和 C++ 都是编译型语言;而 JavaScript和 ruby都是解释性语言,它们整体的执行速度都会略慢于编译型的语言。 为了提高运行效率,很多浏览器厂商在也在不断努力。目前市面上有很多种 JS 引擎,例如 JavaScriptCore、c原创 2022-06-09 21:21:06 · 357 阅读 · 0 评论