gpt4 book ai didi

javascript - 为什么 (false || null) 返回 null,而 (null || false) 返回 false?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:38 28 4
gpt4 key购买 nike

为什么 为 false || null 返回与 null || 不同的结果错误?

我可以安全地依赖 return myVar || false 如果 myVar 为 nullfalse,则返回 false,否则返回 true

所有组合:

错误 ||空

空 ||假的

错误

真 ||空

正确

空 ||真

正确

最佳答案

JavaScript 中的 || 运算符不一定返回 truefalse。它的确切行为是这样的:

如果第一个操作数为真,则计算结果为第一个操作数。否则,它计算为第二个。

这在给定两个 bool 值的情况下按预期工作,但正如您所注意到的,您也可以将它与任何其他值一起使用。在您的两个示例中,第一个操作数都是假的。因此,两个表达式的计算结果都是第二个操作数。


注意它的一种使用方式: || 的行为通常用于创建默认参数:

function foo(optionalArg) {
optionalArg = optionalArg || "default!";
console.log(optionalArg);
}

foo("test");
foo();

如果 optionalArg 被省略,它的值隐式变为 undefined。因为 undefined 是假的,undefined || "default!" 计算为 "default!"。请注意,如果您传递一个虚假值(如 0""),这种默认 args 样式可能会适得其反。显式检查 undefined 更可靠。在 ECMAScript 6 中,您可以使用参数列表中的默认值来执行此操作以提高可读性:

function foo(optionalArg = "default!") {
console.log(optionalArg);
}

foo("test");
foo(false);
foo(undefined);
foo();

关于javascript - 为什么 (false || null) 返回 null,而 (null || false) 返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40814333/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com