JavaScript 中的逻辑 OR(或 )运算符是一个运算符,如果左侧为 否则默认并返回右侧。 || 真值,则返回左侧 , 这意味着它可以用于测试两个逻辑语句,也可以在左侧操作数为 时返回右侧操作数。 falsy 让我们来看看它是如何工作的。 在 JavaScript 中,Truthy 和 Falsy 到底是什么意思 在继续之前,让我们先了解一下 是什么意思。这似乎是一个模糊的陈述,但它实际上有一个非常具体的定义。以下值在 JavaScript 中是 的: falsy falsy false 或 或 0 -0 0n 空字符串,即 any "" null undefined NaN 同样, 仅表示任何 的东西。 truthy 不是 falsy 由于 可能意味着 和 ,因此有时设置默认值可能是一个糟糕的选择。 falsy 0 "" 例如,在某些情况下,如果您的值确实为 ,并且您想显示它,您将无法使用 操作员。对于这些情况,最好考虑空值合并运算符。 0 || JavaScript 中的逻辑 OR 运算符如何工作? 如前所述, 运算符在 JavaScript 中有两个主要功能。最常见的是,它出现在逻辑 语句中,如果它的一个或多个操作数为真,则返回 true,但如果它为 ,它也用于返回第一个 ,或默认为右侧如果不是,则操作数。 || if..else truthy truthy 以这两种方式工作,因为它实际上返回一个值。 || 将逻辑或与逻辑一起使用 你可能已经看到了 最常用于 和 等逻辑语句中。在这些情况下,我们通常测试一个逻辑语句,所以 如果它的一个或多个操作数为 ,则返回 。 || if else || truthy true 下面发生的是 运算符返回一个值,然后 语句将其转换为 或 || if true false let x = 100; // This returns true, since both of these statements are correct. if(x > 5 || x > 10) { // ... } // Since both "1" and "2" can be converted to true, this also returns true in this context. if("1" || "2") { // ... } // Since both "" and null are falsy, they are converted to false, and as such this returns false. if("" || null) { // ... } 这是您将使用的主要方式之一 在您的代码中,但它也经常用于根据它们的 来返回值。 || truthy falsy 返回值 现在让我们看另一个例子,在逻辑语句之外。如前所述, 如果它是 则返回其左侧,否则返回其右侧。 || truthy 这听起来有点令人困惑,所以让我们看几个例子。 // Is set to 1, since the first operand is falsy let x = false || 1; // Is set to hello, since "hello" is truthy let y = "hello" || true; 在上面的示例中,由于 的左侧设置为 ,因此 变为 1。类似地,在 中,由于 不是 ,因此 的值是 。此功能与其在逻辑语句和 语句中的应用不同,但在许多情况下都很有用。 x false x y "hello" falsy y "hello" if..else 有趣的是,即使给出的最后一项是 ,JavaScript 仍然会返回它。 falsy 例如: // Is set to null since false is falsy let x = false || null; // Is set to false since 0 is falsy let y = 0 || false; 链接 OR 运算符 可以链接 JavaScript 中的运算符。当链接逻辑语句时(在 子句中),如果任何链接项为真,则该语句将返回 : || if..else truthy // This works since both "1" and true are truthy if("1" || true || false) { // ... console.log('this works') } // This doesn't work since all values are falsy if(false || null || undefined) { console.log('this does not work'); } 当我们使用 链接在逻辑语句之外,它将使用找到的第一个 值,或默认为最终值。例如,在下面, 等于 , 是 , 是 。如果您想知道为什么 是 ,那是因为任何不是 的东西都是 的,这意味着一个对象是 的! || truthy x 3 y true z {} z {} falsy truthy truthy // x is set to 3 let x = false || 0 || 3; // y is set to true let y = false || true || 3; // z is set to {} let z = {} || [] || x; 结论 运算符在逻辑语句中经常使用,如果找到,则默认为非 值。它是一个灵活的运算符,是理解 JavaScript 的核心。如果您对另一个类似的运算符感兴趣,您可能还想了解 。 || falsy nullish coalescing 运算符