浏览器是如何运作的
浏览器架构
V8 引擎是如何运行 JS 的
- 8 分钟带你了解 V8 引擎是如何运行 JS
JS 的运行原理
参看:8 分钟带你了解 JS 运行原理
Smi、HeapObject 和字符串
V8 引擎为了极致性能,在底层对 JavaScript 值的表示做了高度优化。它使用一种称为 “指针标记”(Pointer Tagging) 的技术,将不同类型的数据(如整数、对象、字符串等)统一用 64 位(或 32 位)字(word)表示,并通过低位 bit 区分类型。
跨域问题
前端跨域(Cross-Origin Resource Sharing,CORS)是指在浏览器环境下,当一个页面的源(origin)与请求的资源的源不同域(协议、域名、端口号任一不同)时,浏览器会阻止页面获取或操作来自其他域的资源,这种安全机制称为同源策略(Same-Origin Policy)。跨域问题是由浏览器的同源策略引起的。
ConsString 的惰性拼接、Map(隐藏类)机制或分代 GC 如何管理
这是一个非常深入且精彩的问题!V8 的高性能不仅来自 Smi 和指针标记,更依赖于三大核心优化机制:
浏览器缓存
http 缓存
分代垃圾回收如何避免长时间停顿?
分代垃圾回收(Generational Garbage Collection)本身并不能完全避免长时间停顿,但现代 JavaScript 引擎(如 V8 的 Orinoco GC)通过一系列并发(concurrent)、并行(parallel)、增量(incremental)和惰性(lazy)技术,将原本可能长达数百毫秒的“Stop-The-World”(STW)停顿拆解为多个微小停顿,从而显著降低用户可感知的卡顿。
浏览器本地存储
前端本地存储主要有以下几种方式: