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

在JavaScript中,为什么将值与未定义值进行比较返回false?,javascript,comparison,undefined,Javascript,Comparison,Undefined,我是Javascript新手,我注意到当一个变量未定义时,比较一个数字返回false,如下所示。为什么将未定义的与数字进行比较会返回false var a=未定义; 控制台日志(a

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

var a=未定义;
控制台日志(a<10);
控制台日志(10console.log(a==10)这就是JavaScript的工作原理

Number(undefined) // NaN
NaN == NaN // false
NaN < 0 // false
NaN > 0 // false
Number(未定义)//NaN
NaN==NaN//false
NaN<0//false
NaN>0//false
因此,在比较时,它会强制检查:

Number(undefined) < 10
// undefined is coerced to check with number
编号(未定义)<10
//未定义强制与数字进行检查
因此

undefined == 10 // false
undefined > 10 // false
undefined < 10 // false
undefined==10//false
未定义>10//false
未定义<10//false

您希望这些产品返回什么?当然不是trueRead:因为您正在将表示原语值
未定义的
的全局
未定义的
属性与返回
false的
数字进行比较。。更多关于