【发布时间】:2011-05-30 22:56:48
【问题描述】:
我不明白 &&、|| 和 ! 是如何工作的……无论是布尔值还是其他数据类型。你如何使用它们?
【问题讨论】:
标签: javascript logical-operators
我不明白 &&、|| 和 ! 是如何工作的……无论是布尔值还是其他数据类型。你如何使用它们?
【问题讨论】:
标签: javascript logical-operators
Javascript 中的所有值要么是“真”,要么是“假”。
a && b 计算为第一个假操作数a || b 计算为第一个真值操作数两个运算符都不会计算返回后的任何操作数。
如果所有操作数都不匹配,它将评估为最后一个。
a 为假,!a 的计算结果为true,如果a 为真,则为false。所有值都是真值,除了以下falsy:
false+0-0NaN""nullundefineddocument.all【讨论】:
undefined是一个值,但也有变量undefined保存这个值,默认。 NaN 也不等于任何东西,甚至不等于它自己。
!NaN 是 true,所以 NaN 是假的。
NaN 或任何其他值提出任何其他要求。
document.all?
如果您想测试两个条件中的 两个 是否为真,请使用 &&:
if (isX && isY)
{
// Do something.
}
如果您想测试 两个条件中的一个或两个是否为真,请使用 ||:
if (isX || isY)
{
// Do something.
}
! 反转布尔值(真值变为假,反之亦然)。
【讨论】:
document.write("Cat"||"Dog") 呢?
|| 称为默认运算符,因此"Cat" || "Dog" 应为cat, defaults to dog。我个人将其阅读为cat, otherwise dog。