代码之家  ›  专栏  ›  技术社区  ›  Fabio Marzocca

逻辑OR中的行为

  •  -3
  • Fabio Marzocca  · 技术社区  · 3 年前

    我正在经历以下情况:

    true || "Word"
    true
    
    false || "Word"
    'Word'
    
    undefined || "Word"
    'Word'
    

    我认为这是正确的,但我不明白背后的逻辑。

    1 回复  |  直到 3 年前
        1
  •  4
  •   Rode093    3 年前

    这很简单。对于OR运算,它返回第一个truthy值,如果所有条件都为false,则返回false。

    示例:

    true || "Word"
    

    如果你读到第一个条件是真的,从左到右。因此,它不会执行该部分的其余部分并返回true。

    false || "Word"
    

    这里第一个条件为false,因此它将继续检查下一个字符串条件。任何字符串都被认为是truthy值,因此它返回字符串“Word”

    undefined || "Word"
    

    在javascript中,未定义被认为是错误的。因此,它返回的下一个部分是真的,因为它是一个字符串。

    现在让我们检查一个更复杂的条件:

    false || undefined || "Word" || true
    

    在这个例子中,第一个条件为false,第二个条件为falsy,因为undefined被认为是falsy;第三个条件为true,因为它是字符串。因此,它将返回该值,而不检查下一个条件。所以最终结果是“Word”