可选链(Optional Chaining)和空值合并运算符(Nullish Coalescing Operator)是 JavaScript 中的两个新特性,它们可以在处理可能为 null 或 undefined 的值时提供更简洁和安全的代码。
可选链允许我们通过在对象的属性后面加上问号(?)来访问可能为 null 或 undefined 的属性,如果属性存在则返回属性的值,否则返回 undefined。这样可以避免因为访问不存在属性而导致的错误。示例代码如下:
const obj = {foo: {bar: {baz: 'hello'}}
};console.log(obj.foo?.bar?.baz); // 输出 'hello'
console.log(obj.foo?.qux?.baz); // 输出 undefined
空值合并运算符允许我们使用两个问号(??)来提供一个默认值,当变量为 null 或 undefined 时会使用默认值,否则会使用变量的值。这样可以简化判断变量是否为 null 或 undefined 的条件代码。示例代码如下:
const foo = null;
const bar = undefined;
const baz = 'hello';console.log(foo ?? 'default value'); // 输出 'default value'
console.log(bar ?? 'default value'); // 输出 'default value'
console.log(baz ?? 'default value'); // 输出 'hello'
可选链和空值合并运算符可以结合使用,提供更简洁和安全的代码。示例代码如下:
const obj = {foo: {bar: {baz: 'hello'}}
};console.log(obj?.foo?.bar?.baz ?? 'default value'); // 输出 'hello'
console.log(obj?.foo?.qux?.baz ?? 'default value'); // 输出 'default value'