ES2023 到 ES2025:已经进入日常的实用新特性
findLast、toSorted、Object.groupBy、Promise.withResolvers、Set 集合运算……盘点近三年 ES 标准里真正用得到的那些。
findLast、toSorted、Object.groupBy、Promise.withResolvers、Set 集合运算……盘点近三年 ES 标准里真正用得到的那些。
require 和 import 到底有什么本质区别?循环依赖在两者中分别如何表现?讲清模块包装、加载时机与互操作。
Proxy 能拦截哪些操作?为什么处理函数里要用 Reflect 而不是直接操作 target?从陷阱方法讲到响应式实现。
一段 JS 代码在引擎里到底经历了什么?从解析、AST、字节码讲到执行上下文、词法环境和调用栈模型。
日期、数字、货币、相对时间、列表、复数……这些格式化需求不需要装库,浏览器内置的 Intl 家族全包了。
JSON.parse(JSON.stringify()) 丢 undefined、丢 Date、循环引用直接炸。structuredClone 作为原生方案,能力边界在哪。
for...of 凭什么能遍历?什么是可迭代协议?generator 的 yield 如何暂停函数?讲清协议、生成器与异步生成器。
不借助原生方法如何改变 this?在对象上临时挂函数再调用,手写三个方法,并处理 bind 的柯里化与 new 场景。
标记清除和引用计数有什么区别?为什么闭包和全局变量会造成泄漏?梳理 GC 机制和四类典型泄漏场景。
ES2020 的 ?. 和 ?? 终于来了。它们解决了什么问题,和 && / || 有什么本质区别,哪些老代码可以放心改写。
JavaScript 是单线程,为什么还能处理高并发?从宏任务、微任务两个队列讲清楚事件循环的运行机制。
JSON.parse(JSON.stringify()) 为什么丢了 Date 和函数?梳理深拷贝的四种方案,手写支持数组/循环引用的递归版本。
async 函数返回的到底是什么?await 暂停了什么?对比 .then 链,总结 try/catch、并发请求等实战写法。
then 为什么可以链式调用?回调为什么总是异步执行?手撕 Promise/A+ 核心实现,顺带搞懂解析嵌套 Promise 的递归。
一道经典的循环定时器面试题,带你彻底搞懂函数作用域、块级作用域以及闭包的本质。
__proto__ 和 prototype 什么关系?属性查找是怎么一路找到 Object 的?用一张图和几段代码讲清原型链继承。
正则看着像天书,其实就是一套模式描述语言。从字符类、量词到分组捕获,配合真实例子把常用语法过一遍。
this 不指向函数自身、也不看函数在哪定义,只看调用方式。按优先级讲透 new、显式、隐式、默认四条规则。
for 循环不是不能用,但 map/filter/reduce 这类声明式写法更清晰。梳理常用数组方法的语义、返回值和经典组合。
为什么 [] == false 但 !![] === true?梳理 JS 的七种数据类型和四则运算、== 背后的隐式转换规则。