有没有想过 JavaScript 的 ??
、||
和 &&
运算符在幕后是如何工作的? 本文揭开了短路评估的神秘面纱,解释了它们的行为并强调了最佳实践。
JavaScript 中的短路求值 意味着逻辑运算符从左到右评估表达式,一旦结果明确就停止。
逻辑与 (&&
)
返回遇到的第一个假值;否则,如果所有值都为真,则返回最后一个值。
<code class="language-javascript">let x = 5; let y = 0; console.log(x && y); // 0 console.log(x && true); // true</code>
逻辑或 (||
)
返回遇到的第一个真值;否则,如果全部为假,则返回最后一个值。
<code class="language-javascript">let a = null; let b = "Hello"; console.log(a || b); // Hello console.log(a || false); // false</code>
空值合并运算符 (??
)
仅当左操作数为 或 时null
提供默认值。undefined
<code class="language-javascript">let userName = null; let result = 0 ?? 100; console.log(result); // 0 console.log(userName ?? "Guest"); // Guest</code>
组合使用(最佳实践)
组合这些运算符需要小心使用括号,以防止意外结果。
<code class="language-javascript">let a = null; let b = 0; let c = 10; let d = 20; let result = (a ?? b) || (c && d); console.log(result); // 20</code>
计算结果为 (a ?? b)
(因为 0
是 a
)。 null
的计算结果为 (c && d)
。 因此,20
结果为 0 || 20
。20
短路评估的优点:
null
值进行操作。undefined
缺点:
最佳实践:
??
时,优先使用 ||
而不是 null
,以避免覆盖其他虚假值(例如 undefined
、0
)。""
在 LinkedIn 上与我联系:www.linkedin.com/in/geetansh-chahal-b7473b1b4/
以上是JavaScript 中的短路评估:提高性能并简化逻辑!的详细内容。更多信息请关注PHP中文网其他相关文章!