简介
JS?? 是 JavaScript 中的一种运算符,用于在两个值之间进行空值合并。它检查第一个操作数是否为 null 或 undefined,如果是,则返回第二个操作数;否则,返回第一个操作数。
多级标题
JS?? 运算符的用法
内容详细说明
JS?? 运算符的语法如下:``` x ?? y ```其中:
x 是第一个操作数。
y 是第二个操作数。运算符按照如下方式工作:
如果 x 为 null 或 undefined,则返回 y。
否则,返回 x。例如:``` let x = null; let y = 10;console.log(x ?? y); // 输出:10 ```在上面的示例中,x 为 null,因此运算符返回 y。JS?? 运算符通常用于提供默认值。例如:``` function getUserName(user) {return user?.name ?? "Unknown"; } ```此函数使用 ?? 运算符为 user.name 提供一个默认值,如果 user.name 为 null 或 undefined,则返回 "Unknown"。JS?? 运算符与逻辑 OR (||) 运算符类似,但有一个关键区别:|| 运算符将任何非 false 值视为 true,而 ?? 运算符仅将非 null 和非 undefined 值视为 true。
优点
使代码更简洁易读,特别是在处理空值时。
防止 TypeError,因为它不会尝试访问 null 或 undefined 属性。
缺点
不能用于深层嵌套对象,因为它只能检查第一个操作数的 null 或 undefined 值。如果需要检查嵌套对象的空值,则必须使用可选链操作符 (?.) 或其他方法。