我是Java语言的新手,我注意到当变量为undefined
时,比较一个数字将返回false
,如下所示。为什么将undefined
与数字进行比较会返回false
?
var a = undefined;
console.log(a < 10);
console.log(10 < a);
console.log(a == 10);
答案 0 :(得分:3)
这是在JavaScript中的工作方式。
Number(undefined) // NaN
NaN == NaN // false
NaN < 0 // false
NaN > 0 // false
因此,当您比较时,它会强制进行如下检查:
Number(undefined) < 10
// undefined is coerced to check with number
因此,
undefined == 10 // false
undefined > 10 // false
undefined < 10 // false