为什么将值与未定义的值进行比较在JavaScript中返回false?

时间:2018-11-20 04:37:47

标签: javascript comparison undefined

我是Java语言的新手,我注意到当变量为undefined时,比较一个数字将返回false,如下所示。为什么将undefined与数字进行比较会返回false

var a = undefined;
console.log(a < 10);
console.log(10 < a);
console.log(a == 10);

1 个答案:

答案 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