ES2020系列之空值合并运算符 '??'

(编辑:jimmy 日期: 2024/12/27 浏览:2)

空值合并运算符 "htmlcode">

x = (a !== null && a !== undefined) "Anonymous"。
让我们使用 "htmlcode">
let firstName = null;
let lastName = null;
let nickName = "Supercoder";

// 显示第一个不是 null/undefined 的值
alert(firstName "Anonymous"); // Supercoder

与 || 比较

或运算符 || 可以与 "_blank" href="https://zh.javascript.info/logical-operators#or-finds-the-first-truthy-value" rel="external nofollow" >上一章 所讲的,我们可以用 || 替换上面示例中的 "htmlcode">

height = height "htmlcode">
let height = 0;

alert(height || 100); // 100
alert(height "color: #ff0000">优先级

"_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table" rel="external nofollow" >MDN table 中为 5。

因此,"htmlcode">

let height = null;
let width = null;

// 重要:使用括号
let area = (height "htmlcode">
// 可能不正确的
let area = height "htmlcode">
let x = 1 && 2 "htmlcode">
let x = (1 && 2) "color: #ff0000">总结

空值合并运算符 "htmlcode">

// 当 height 的值为 null 或 undefined 时,将 height 的值设置为 100
height = height ?? 100;

?? 运算符的优先级非常低,只略高于 ? 和 =。

如果没有明确添加括号,不能将其与 || 或 && 一起使用。