我需要在Javascript中比较两个数值是否相等。这些值可能是NaN
。
我想到了以下代码:
if (val1 == val2 || isNaN(val1) && isNaN(val2)) ...
代码目前可以正常运行,但我觉得它太臃肿了。我想让它更简洁。有什么建议吗?
我需要在Javascript中比较两个数值是否相等。这些值可能是NaN
。
我想到了以下代码:
if (val1 == val2 || isNaN(val1) && isNaN(val2)) ...
代码目前可以正常运行,但我觉得它太臃肿了。我想让它更简洁。有什么建议吗?
if (isNaN(x) == true){
alert("This is not a number.");
}
function IsActuallyNaN(obj) {
return [obj].includes(NaN);
}
或者我们可以选择davidchambers的解决方案,这个方案更加简单。
function IsActuallyNaN2(obj) {
return obj !== obj;
}
Object.is(obj, NaN)
。 - Bergi
||
和&&
是非常丑陋和令人困惑的。 - ThiefMasterNaN
和NaN
应该被认为是不相等的,因为例如0/0
和parseInt("not a number!")
虽然它们两个都求值为NaN
,但不应被视为相等。 - Peter Olson