JavaScript 特性全景:ES5 → ES2026
从 ES5 到 ES2026,JavaScript 走过了超过十五年的现代化演进。
ES5(2009)— 现代 JS 的基石
ES5 是所有现代浏览器的最低公共基准,奠定了"现代 JavaScript"的基础。Chrome 4+全面支持。
特性 / 说明
"use strict" 严格模式 禁止隐式全局变量、禁止 this 隐式绑定为全局
Array.isArray() 可靠地判断数组类型
Array.prototype.forEach / map / filter / reduce 函数式数组操作
Object.keys() / values() 枚举对象属性
Object.create() 原型继承的显式方式
Object.defineProperty() 定义不可枚举/不可写属性,getter/setter
JSON.parse() / JSON.stringify() 原生 JSON 支持
Function.prototype.bind() 绑定函数上下文
Date.now() 获取毫秒时间戳
getter / setter 语法 对象字面量中使用 get/set
ES6 / ES2015 — 革命性的大版本
ES6 是 JavaScript 历史上规模最大的一次更新,引入了 20+ 项重大新特性,彻底改变了前端开发方式。Chrome 49+基本全面支持(模块需 Chrome 61+)。
版本特性速览总结
版本 / 年份 / 重点 / 代表特性 / Chrome 最低要求
ES5 2009 现代化基础 严格模式、JSON、getter/setter Chrome 4+
ES6 2015 革命性变革 let/const、箭头函数、Class、Promise、模块 Chrome 49+(模块 61+)
ES2016 2016 精简 includes()、** 运算符 Chrome 52+
ES2017 2017 异步 async/await、Object.entries Chrome 55+
ES2018 2018 展开与异步迭代 for await...of、对象展开、finally Chrome 63+
ES2019 2019 细节 flat/flatMap、Object.fromEntries、可选 catch Chrome 73+
ES2020 2020 语法补全 可选链 ?.、空值合并 ??、BigInt Chrome 80+
ES2021 2021 实用 replaceAll、逻辑赋值、数字分隔符 Chrome 85+
ES2022 2022 类增强 私有字段、顶层 await、at() Chrome 94+
ES2023 2023 不可变 toSorted/toReversed、findLast Chrome 110+
ES2024 2024 并发/Unicode Promise.withResolvers、groupBy、正则 v 标志 Chrome 119+
ES2025 2025 迭代器/Set Set 集合运算、迭代器辅助方法、Promise.try Chrome 130+
ES2026 2026 日期/精度 Temporal、Math.sumPrecise、Error.isError Chrome 131+(部分)
结语:奔跑中的 JavaScript
回望这段历史,很难不感叹 JavaScript 演进的速度之快、野心之大。
二十年前,它是一门被人嘲笑的"玩具语言",用来做表单验证和弹窗广告。而今天,它运行在浏览器、服务器(Node.js/Deno/Bun)、移动端(React Native)、桌面端(Electron/Tauri)、边缘计算节点(Cloudflare Workers)、甚至嵌入式设备上——几乎无处不在。
ES6(2015)是第一个分水岭,它用箭头函数、Class、Promise、模块系统彻底重塑了 JavaScript 的开发范式,催生了 React/Vue/Angular 三足鼎立的现代前端时代。
async/await(2017)是第二个分水岭,异步编程从"回调地狱"走向了接近同步代码的优雅写法,Node.js 生态因此爆发式增长。
**ES2022 的私有字段、ES2023 的不可变数组方法、ES2024 的 groupBy**,则像是一块块精密的拼图,把那些长期依赖 Lodash、underscore 才能做到的事情,一件件纳入了语言本身。
原文链接:https://mdnice.com/writing/d80f656850624d8cad19e8afbc1f3282#es2019