Nullish Coalescing Operator (??) 的作用是什么?

推荐答案

Nullish Coalescing Operator (??) 是 ECMAScript 2020 (ES11) 中引入的一个逻辑运算符,用于检查一个值是否为 nullundefined。如果左侧的操作数为 nullundefined,则返回右侧的操作数;否则返回左侧的操作数。

本题详细解读

1. 基本用法

?? 运算符的主要作用是提供一种简洁的方式来处理 nullundefined 的情况。与逻辑或运算符 (||) 不同,?? 仅在左侧操作数为 nullundefined 时才会返回右侧操作数,而 || 会在左侧操作数为任何假值(如 0, '', false, NaN 等)时返回右侧操作数。

2. 适用场景

?? 运算符特别适用于以下场景:

  • 默认值设置:当你希望仅在变量为 nullundefined 时使用默认值,而不是在所有假值情况下都使用默认值。

    -- -------------------- ---- -------
    ----- ------------ - -
      ------ -----
      --------- -
    --
    
    ----- ----- - ------------------ -- --------
    ----- -------- - --------------------- -- ---
    
    ------------------- -- --- -------
    ---------------------- -- --- -
  • 避免意外行为:在某些情况下,使用 || 可能会导致意外的行为,特别是当 0, '', 或 false 是有效值时。?? 可以避免这些问题。

3. 与 || 的区别

??|| 的主要区别在于它们对假值的处理方式:

  • || 会在左侧操作数为任何假值时返回右侧操作数。
  • ?? 仅在左侧操作数为 nullundefined 时返回右侧操作数。

4. 注意事项

  • ?? 不能与 &&|| 直接混合使用,除非使用括号明确优先级。

  • ?? 是 ES2020 的新特性,因此在较旧的 JavaScript 环境中可能不被支持。

纠错
反馈