空值合并运算符
MDN:
空值合并操作符(
??
)是一个逻辑操作符,当左侧的操作数为null
或者undefined
时,返回其右侧操作数,否则返回左侧操作数。与逻辑或操作符
||
不同,逻辑或操作符会在左侧操作数为假值时返回右侧操作数。也就是说,如果使用||
来为某些变量设置默认值,可能会遇到意料之外的行为。比如为假值(例如,''
或0
)时。见下面的例子。
-
不能与
&&
和||
直接共用应当是因为空值合并操作符和其他逻辑操作符之间的运算优先级/运算顺序是未定义的
null || undefined ?? "foo"; // 抛出 SyntaxError true || undefined ?? "foo"; // 抛出 SyntaxError // 如果使用括号来显式表明运算优先级,是没有问题的: (null || undefined ) ?? "foo"; // 返回 "foo"
来源: [MDN](Web 开发技术 | MDN (mozilla.org))
本文来自博客园,作者:MerLin97,转载请注明原文链接:https://www.cnblogs.com/merlin97/p/15578304.html