双问号操作符 Nullish Coalescing
双问号操作符(??
),也被称作空值合并运算符,当左侧的操作数为 null
或者 undefined
时,返回其右侧操作数,否则返回左侧操作数
const foo = null ?? 'default string';
console.log(foo); // "default string"
可能有人会问 ??
和 ||
有什么区别呢?
??
的左侧只判断两种情况:null
和 undefined
,而 ||
的左侧只要是假值(包括''
和 0
)都会返回右侧的值
const number = 0;
console.log(number || 100); // 100
console.log(number ?? 100); // 0