console.log([1,2,3] > null); // returns false
// "1,2,3" > null
// NaN > null
// false => Direct returns false ??
该代码返回false。通常,NaN> null必须是数字比较。但是结果返回false。为什么?
遵循抽象关系比较算法中的步骤:
[1,2,3] > null
-步骤1(a,b):对双方都适用"1,2,3" > null
-步骤4(d,e):将ToNumeric应用于双方现在我们有NaN > 0
,这是false
因为任何时间NaN
参与任何关系运算,结果是false
。
在对您提出的问题的评论中:
但是为什么不比较就返回假。
>
是一个比较。我认为您的意思是“没有分支操作或表达式”(例如if
或条件运算符? :
)。如果是这样,这是因为无论您是否使用这些结果进行分支,表达式(包括关系表达式)都具有结果值。>
表达式的结果为true
或false
。如果您在中使用if
,那很好,但是您不必:
const a = 1 > 2;
console.log(a); // false
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句