🌟 ECMAScript 重点更新(ES6 ~ ES2024)
ES6(2015)
let/const(块级作用域)- 箭头函数
() => {} - 模板字符串
`Hello ${name}` - 解构赋值
{ a, b } = obj - 扩展运算符
...arr Promiseclass类与继承import/export(模块化)Map/SetSymbol
✅ 关键词:现代 JS 的起点
ES7(2016)
Array.prototype.includes- 指数运算符
**
✅ 关键词:小更新,数组判断更方便
ES8(2017)
async/await(异步写法革命)Object.values()/Object.entries()- 字符串填充
padStart/padEnd
✅ 关键词:异步更丝滑
ES9(2018)
Promise.finally()Object Rest / Spread({...obj})- 异步迭代器
for await...of
✅ 关键词:Promise 进化
ES10(2019)
Array.flat()/Array.flatMap()Object.fromEntries()String.trimStart()/trimEnd()Optional Catch Binding(catch (e)可省略)
✅ 关键词:数据结构优化
ES11(2020)
Optional Chaining(?.)Nullish Coalescing(??)Promise.allSettled()globalThis
✅ 关键词:更安全的访问链
ES12(2021)
String.replaceAll()Promise.any()WeakRef/FinalizationRegistry- 逻辑赋值运算符(
||=,&&=,??=)
✅ 关键词:异步与内存优化
ES13(2022)
class私有属性(#privateField)static block(静态初始化块)Object.hasOwn(obj, key)top-level await(模块顶层直接使用await)Array.prototype.at()
✅ 关键词:类的私有化、模块更灵活
ES14(2023)
Array.findLast()/Array.findLastIndex()Symbol.asyncDispose(异步清理)RegExp v flag(正则增强)hashbang(#!/usr/bin/env node支持)
✅ 关键词:底层细节加强
ES15(2024)
- (提案阶段,核心内容大致定了)
Set methods:.union(),.intersection(),.difference()Map.groupBy()/Array.groupBy()Change Array by copy:toSorted(),toSpliced(),toReversed()Symbol.dispose(同步清理)Number.range()Iterator helpers(如map,filteron iterators)
✅ 关键词:集合操作,迭代器友好,纯函数式增强
🔥 小总结
| 年份 | 关键词 |
|---|---|
| 2015(ES6) | 现代 JS 起点,模块、Promise |
| 2017(ES8) | async/await 革命 |
| 2020(ES11) | 可选链、空值合并 |
| 2022(ES13) | 私有类字段、模块顶层 await |
| 2024(ES15) | 集合操作增强,函数式迭代器 |
