上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 16 下一页

2020年1月19日

浏览器中的页面循环系统:15 | 消息队列和事件循环:页面是怎么“活”起来的?

摘要: 前言:该篇说明:请见 说明 —— 浏览器工作原理与实践 目录 前面我们讲到了每个渲染进程都有一个主线程,并且主线程非常繁忙,既要处理 DOM,又要计算样式,还要处理布局,同时还需要处理 JavaScript 任务以及各种输入事件。要让这么多不同类型的任务在主线程中有条不紊地执行,这就需要一个系统来统 阅读全文

posted @ 2020-01-19 16:44 bala001 阅读(925) 评论(0) 推荐(0) 编辑

2020年1月17日

V8工作原理:14 | 编译器和解释器:V8是如何执行一段JavaScript代码的?

摘要: 前言:该篇说明:请见 说明 —— 浏览器工作原理与实践 目录 前面我们已经花了很多篇幅来介绍 JavaScript 是如何工作的,了解了这些内容能帮助你从底层理解 JavaScript 的工作机制,从而能帮助你更好地理解和应用 JavaScript。 今天这篇文章我们就继续 “向下” 分析,站在 J 阅读全文

posted @ 2020-01-17 14:03 bala001 阅读(1905) 评论(0) 推荐(0) 编辑

2020年1月15日

V8工作原理:13 | 垃圾回收:垃圾数据是如何自动回收的?

摘要: 前言:该篇说明:|请见 说明 —— 浏览器工作原理与实践 目录 在上一篇文章中,我们提到了 JavaScript 中的数据是如何存储的,并通过例子分析了原始数据类型是存储在栈空间中的,引用类型的数据是存储在堆空间中的。通过这种分配方式,我们解决了数据的内存分配的问题。 不过有些数据被使用之后,可能就 阅读全文

posted @ 2020-01-15 14:09 bala001 阅读(863) 评论(0) 推荐(0) 编辑

2020年1月13日

V8 工作原理:12 | 栈空间和堆空间:数据是如何存储的?

摘要: 前言:该篇说明:请见 说明 —— 浏览器工作原理与实践 目录 对于前端开发者来说,JavaScript 的内存机制是一个不被经常提及的概念 ,因此很容易被忽视。特别是一些非计算机专业的同学,对内存机制可能没有非常清晰的认识,甚至有些同学根本就不知道 JavaScript 的内存机制是什么。 但是如果 阅读全文

posted @ 2020-01-13 17:44 bala001 阅读(1440) 评论(0) 推荐(1) 编辑

2020年1月10日

浏览器中的JavaScript执行机制:11 | this:从JavaScript执行上下文的视角讲清楚this

摘要: 前言:该篇说明:|请见 说明 —— 浏览器工作原理与实践 目录 在上篇文章中,我们讲了词法作用域、作用域链以及闭包,并在最后思考题中留了下面这样一段代码: 相信你已经知道了,在 printName 函数里面使用的变量 myName 是属于全局作用域下面的,所以最终打印出来的值都是 “极客邦”。这是因 阅读全文

posted @ 2020-01-10 15:41 bala001 阅读(493) 评论(0) 推荐(0) 编辑

2020年1月9日

浏览器中的JavaScript执行机制:10 | 作用域链和闭包:代码中出现相同的变量,JavaScript引擎是如何选择的?

摘要: 前言:该篇说明:|请见 说明 —— 浏览器工作原理与实践 目录 在上一篇文章中我们讲到了什么是作用域,以及 ES6 是如何通过变量环境和词法环境来同时支持变量提升和块级作用域,在最后我们也提到了如何通过词法环境和变量环境来查找变量,这其中就涉及到作用域链的概念。 理解作用域链是理解闭包的基础,而闭包 阅读全文

posted @ 2020-01-09 17:24 bala001 阅读(695) 评论(0) 推荐(1) 编辑

2020年1月6日

浏览器中的JavaScript执行机制:09 | 块级作用域:var缺陷以及为什么要引入let和const?

摘要: 前言:该篇说明:|请见 说明 —— 浏览器工作原理与实践 目录 在前面《07 | 变量提升:JavaScript 代码是按照顺序执行的吗?》这篇文章中,我们已经讲解了 JavaScript 中变量提升的相关内容,正是由于 JavaScript 存在变量提升这种特性,从而导致了很多于直觉不符的代码,这 阅读全文

posted @ 2020-01-06 20:26 bala001 阅读(874) 评论(0) 推荐(0) 编辑

2020年1月3日

浏览器中的JavaScript执行机制:08 | 调用栈:为什么JavaScript代码会出现栈溢出?

摘要: 前言:该篇说明:请见 说明 —— 浏览器工作原理与实践 目录 在上篇文章中,我们讲到了,当一段代码被执行时,JavaScript 引擎先会对其进行编译,并创建执行上下文。但是并没有明确说明到底什么样的代码才算符合规范。 那么接下来我们就来明确下,哪些情况下代码才算是“一段”代码,才会在执行之前就进行 阅读全文

posted @ 2020-01-03 20:16 bala001 阅读(1069) 评论(0) 推荐(0) 编辑

2020年1月2日

浏览器中的 JavaScript执行机制:07 | 变量提升:JavaScript代码是按顺序执行的吗?

摘要: 前言:该篇说明:请见 说明 —— 浏览器工作原理与实践 目录 讲解完宏观视角下的浏览器后,从这篇文章开始,我们就进入下一个新的模块了,这里我会对 JavaScript 执行原理做深入介绍。 今天在该模块的第一篇文章,我们主要讲解执行上下文相关的内容。那为什么先讲执行上下文呢?它这么重要吗?可以这么说 阅读全文

posted @ 2020-01-02 17:35 bala001 阅读(856) 评论(0) 推荐(0) 编辑

2019年12月30日

宏观视角下的浏览器:06 | 渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

摘要: 前言:该篇说明:请见 说明 —— 浏览器工作原理与实践 目录 上篇文章中,我们介绍了渲染流水线中的 DOM 生产、样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段。 这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染引擎之后,渲染引擎首先将 HTML 解析 阅读全文

posted @ 2019-12-30 20:32 bala001 阅读(816) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 16 下一页

导航