空值合并运算符(??)

文章讲述了JavaScript中的空值合并运算符??,它在null或undefined时返回右侧值,与逻辑或运算符||的不同在于后者会针对所有假值求值。同时介绍了空值赋值运算符??=的新特性,用于在变量值为空时自动赋值。
摘要由CSDN通过智能技术生成

空值合并运算符(??) 是一个js逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧数,否则返回左侧数。

const x = null;
const y = 'Hello, World!';

const result = x ?? y;
console.log(result); // 输出: 'Hello, World!'

const a = 0;
const b = 'Hello, World!';

const result1 = a ?? b; // 0
空值合并运算符(?? )和 ||(逻辑或运算符)的区别
const a = 0;
const b = 'Hello, World!';

const result2 = a || b; // 'Hello, World!'

||(逻辑或运算符):返回第一个为真的操作数。如果所有操作数都是假值,返回最后一个操作数。

注意:"||"对于`0`、`' '`、`false`等假值也会触发取右侧的值

关键区别:

1、??专门用于处理null或undefined的情况,而II对于所有假值都会触发对右侧的求值。
2、??更严格,只有在左侧为null或undefined时才返回右侧值,而II在左侧为任何假值时都会返回右侧值。

拓展:

空值赋值运算符(??=)
空值赋值运算符 ??= 是 ECMAScript 2022(ES12)中引入的一个新特性。它用于在目标变量的值为 nullundefined 时,将右侧的值赋给目标变量。如果目标变量的值不是 nullundefined,则不执行赋值操作。

let x = null;
let y = 'Hello, World!';

x ??= y;
console.log(x); // 输出: 'Hello, World!'

// 如果 x 的值不是 null 或 undefined,则不执行赋值操作
let z = 'Existing Value';
z ??= 'New Value';
console.log(z); // 输出: 'Existing Value'

let x = 0;
let y = 'Hello, World!';
x ??= y;
console.log(x); // 输出: 0

let x = '';
let y = 'Hello, World!';
x ??= y;
console.log(x); // 输出: ''

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值