空值合并运算符

MDN:

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

与逻辑或操作符||不同,逻辑或操作符会在左侧操作数为假值时返回右侧操作数。也就是说,如果使用 || 来为某些变量设置默认值,可能会遇到意料之外的行为。比如为假值(例如,''0)时。见下面的例子。

  • 不能与&&||直接共用

    应当是因为空值合并操作符和其他逻辑操作符之间的运算优先级/运算顺序是未定义的

    null || undefined ?? "foo"; // 抛出 SyntaxError
    true || undefined ?? "foo"; // 抛出 SyntaxError
    
    // 如果使用括号来显式表明运算优先级,是没有问题的:
    (null || undefined ) ?? "foo"; // 返回 "foo"
    

来源: [MDN](Web 开发技术 | MDN (mozilla.org))

posted @ 2021-11-19 17:16  MerLin97  阅读(87)  评论(0编辑  收藏  举报