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