目录
一、ECMAScript 简史
ECMAScript(简称 ES)是 JavaScript 的语言标准。自 2015 年 ES6 掀起现代 JavaScript 革命后,ECMA 国际每年发布一个标准版本。2020 年后,ES 进入“高频迭代”模式,每年新增的特性虽不多,却直击开发者痛点。本文将梳理这些特性,看它们如何重塑我们的代码。
二、ES2020:可选链与空值合并
1. 可选链操作符(Optional Chaining ?.
)
痛点:多层对象属性访问时,常需逐级判断是否存在,否则抛出 Cannot read property 'x' of undefined
。
方案:?.
自动短路不存在的路径。
// 旧写法
const name = user && user.info && user.info.name;
// 新写法
const name = user?.info?.name; // 若某一层为 null/undefined,返回 undefined
2. 空值合并运算符(Nullish Coalescing ??
)
痛点:||
运算符对 0
、''
、false
等“假值”易误判。
方案:??
仅在左侧为 null 或 undefined 时取右侧值。
const score = user.score ?? 60; // 仅当 user.score 为 null/undefined 时默认 60
3. 动态导入(Dynamic Import)
按需加载模块,返回 Promise,适用于代码分割。
import('./module.js').then(module => {
module.doSomething(