我写了以下代码并没有输出。这是代码
var a1 = undefined;
var a2 = 5;
if(a1 > a2)
alert(1);
if(a1 < a2)
alert(2);
if(a1 >= a2)
alert(3);
if(a1 <= a2)
alert(4);
没有出现警告框,这意味着 if 语句导致错误。我能知道原因吗?
我写了以下代码并没有输出。这是代码
var a1 = undefined;
var a2 = 5;
if(a1 > a2)
alert(1);
if(a1 < a2)
alert(2);
if(a1 >= a2)
alert(3);
if(a1 <= a2)
alert(4);
没有出现警告框,这意味着 if 语句导致错误。我能知道原因吗?
JavaScript 尝试将值转换x
为number
使用 ToPrimitive (@RobG)。由于x
未定义,这将返回NaN
将 false 与任何值进行比较。所以它总会回来false
。
正如评论中提到的@jAndy,您不能将。undefined
关键字视为 value/Instanceundefined
不是数字类型。相反,它undefined
是Global Object
这就是表达式if(undefined {operator} {operand value})
计算结果为假的原因。但考虑代码if(undefined == undefined)
返回true
希望这能消除歧义!