是否有任何 JavaScript 值可以使比较始终为真?
低于运算符的示例:
true < 10 true
false < 10 true
null < 10 true
大于运算符的示例:
true > 10 false
false > 10 false
null > 10 false
我在寻找:
alwaysTrue < 10 true
alwaysTrue > 10 true
我想用它来使 if 语句的一部分默认返回 true,并在第一个比较值更改时返回 true 或 false。
这可能不存在,但我想完全确定。
您可能需要考虑在您的条件中利用“或”与另一个变量,该变量可以胜过它是否返回 true 。
returnTrue || testVariable < 10
当 returnTrue 设置为 true 时,这将始终返回 true,否则它将回退到比较。如果您只是寻找变量的更改,则可以通过存储旧值来实现。如果您知道它永远不会为空,您可以检查这一点,否则您可以使用带有类似于上面的标志的“或”。
oldValue === null || currentValue === oldValue
我不太确定这是否是您所要求的,但这是一种通过更多语句来实现的方法:
var rtn = true;
if (oldCompareValue != newCompareValue) {
// next you'll want to insert your return expression
// i'm not sure you've specified what this should be
rtn = (newCompareValue > 10)? true: false;
}
return rtn;
您也可以根据您的要求使用 AND 运算符来执行此操作:
rtn = true;
if ((oldCompareValue != newCompareValue) && true) {
rtn = (newCompareValue > 10)? true: false;
}
return rtn;
if 语句为我们做了以下事情:
无论哪种情况,测试表达式的右侧部分始终计算为 true,并且只有当左侧部分也通过时,您才需要输入 if。然而,在我看来,保持这一事实似乎有些过分了。
一旦你掌握了逻辑,就可以将其写成一行。
不幸的是,我找不到任何东西。例如,在比较缺失的日期时,拥有这样的对象将非常有帮助。
然而,有些值始终是
false
:
NaN > 10 // false
NaN < 10 // false
undefined < 10 // false
undefined > 10 // false
因此他们的否定将永远是
true
:
!(NaN > 10) // true
!(NaN < 10) // true
!(undefined < 10) // true
!(undefined > 10) // true
因此,您可以使用否定重写您的陈述:
value > 10
!(value < 10)