Skip to content

前言

JavaScript 从现象到本质的思维旅程

第一章:重新理解那些“熟悉”的概念

  • 再探闭包
    它真的是“函数+外部变量”吗?闭包的真正载体是什么?
  • 词法作用域
    为什么说作用域是“静态”的?它和作用域链有何区别?
  • 再探执行上下文
    VO、AO、LexicalEnvironment:执行上下文的三重结构解析
  • 内部槽(Internal Slot)
    [[Environment]][[Prototype]]:JS 对象背后的隐性契约
  • 变量提升的本质是什么?
    Hoisting 是假象,真正的秘密在“声明阶段”与“初始化时机”
  • 暂时性死区(TDZ)的真相
    为什么 let/const 有 TDZ?V8 是如何实现这一限制的?
  • 作用域链的构建时机
    是函数调用时才链接?还是定义时就确定?with 如何破坏它?

第二章:解构语言的“行为协议”

  • this 的本质
    它不是关键字,而是执行上下文中的一个动态绑定
  • 被忽视的协议
    [[Call]][[Construct]]:函数为何既能调用又能构造?
  • 箭头函数的设计哲学
    为何没有自己的 this?它如何改变调用协议?
  • 如何理解 arguments
    伪数组背后的绑定机制:它为何能“实时响应”参数变化?
  • new 操作符详解
    [[Construct]] 到原型绑定,一步步拆解对象创建过程
  • call/apply/bind 详解
    如何手动控制 this 绑定?bind 的“硬绑定”与“柯里化”特性
  • 构造器返回值的诡异行为
    如果构造函数 return {}return 1,结果会怎样?

第三章:穿透类型与对象的表象

  • 深拷贝 vs 浅拷贝
    值复制还是引用穿透?递归与循环引用的破解之道
  • Object.create(null) 的特殊意义
    为何它是“最干净”的对象?在 Map 前时代如何模拟哈希表?
  • 属性描述符与不可变性
    configurable、writable、enumerable:如何真正“冻结”一个对象?
  • in 操作符与原型链查找
    为什么 'toString' in obj 为 true?它的查找路径是怎样的?
  • hasOwnProperty 的边界情况
    它真的能安全判断自有属性吗?什么情况下会失效?

第四章:探索语言的“元能力”与底层机制

  • Symbol.toPrimitive:类型转换的终极控制权 // JsQuestions/Part18.md 如何自定义对象转原始值的行为?+obj 背后的调用逻辑
  • valueOf 与 toString 的优先级之争 // JsQuestions/Part19.md 什么时候先调用谁?数字运算 vs 字符串拼接的差异
  • Proxy:拦截对象的十三种行为
    如何实现负索引数组、链式调用、自动深响应?
  • Reflect:与 Proxy 配套的“默认操作”API
    为什么 Reflect.get(target, key, receiver) 需要 receiver?
  • 迭代协议:for...of 背后的隐藏接口
    Symbol.iterator 如何让对象变得“可迭代”?
  • 异步迭代器与生成器的融合
    async function* 返回什么?如何实现流式数据处理?

第五章:揭秘引擎与运行时细节

  • 事件循环再思考:宏任务与微任务的优先级
    Promise.then 一定比 setTimeout 快吗?Node.js 与浏览器的差异
  • 微任务队列的执行时机
    为什么 Promise.resolve().then() 能“插队”?
  • JavaScript 内存模型初探
    栈、堆、V8 的老生代与新生代分配策略
  • 闭包与内存泄漏的真实关系
    何时该主动释放引用?Chrome DevTools 如何分析 retainers?
  • 尾调用优化(TCO)为何在 JS 中受限?
    什么是 proper tail calls?为什么 V8 几乎不支持?

补充说明:

  • 新增内容均来自 JS 语言规范核心机制,如内部槽、协议、转换规则、引擎行为等,避免泛泛而谈。
  • 标题延续你原有风格:使用“再探”“本质”“详解”“被忽视”“真相”“哲学”等词,增强辨识度与吸引力。
  • 逻辑递进清晰:从基础认知 → 行为协议 → 对象模型 → 元编程 → 引擎运行,层层深入。
  • 可扩展性强:后续还可加入 Temporal Dead Zone 实现原理V8 Hidden Class 演示JIT 去优化陷阱 等更硬核主题。