js中?.、??、??=的用法和含义
时间: 2024-04-18 08:22:55 浏览: 100
jquery是什么意思?jquery和js的区别是什么?.docx
在JavaScript中,?.、??、??=是一些相对较新的语法特性,用于简化代码和处理可能出现的空值情况。
1. ?.(可选链操作符):
可选链操作符(Optional Chaining Operator)用于访问可能不存在的属性或方法,避免出现错误。如果属性或方法存在,则返回对应的值;如果不存在,则返回undefined。
例如:
```javascript
const obj = {
foo: {
bar: {
baz: 42
}
}
};
const value = obj?.foo?.bar?.baz; // 42
const nonExistentValue = obj?.foo?.qux; // undefined
```
2. ??(空值合并操作符):
空值合并操作符(Nullish Coalescing Operator)用于提供默认值,当左侧的操作数为null或undefined时,返回右侧的操作数。
例如:
```javascript
const foo = null ?? 'default'; // 'default'
const bar = undefined ?? 'default'; // 'default'
const baz = 0 ?? 42; // 0
```
3. ??=(空值合并赋值操作符):
空值合并赋值操作符(Nullish Coalescing Assignment Operator)用于在左侧的操作数为null或undefined时,将右侧的操作数赋值给左侧的变量。
例如:
```javascript
let foo = null;
foo ??= 'default';
console.log(foo); // 'default'
let bar = 42;
bar ??= 'default';
console.log(bar); // 42
```
阅读全文