为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不比较就返回 false?

为什么不比较就返回 false?

慕森卡 2023-10-14 18:15:42
console.log([1,2,3] > null); // returns false// "1,2,3" > null// NaN > null// false => Direct returns false ??该代码返回 false。通常 NaN > null 必须是数值比较。但结果返回错误。为什么?
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

遵循抽象关系比较算法中的步骤:

  • [1,2,3] > null- 步骤 1 (a,b):将 ToPrimitive 应用于两侧

  • "1,2,3" > null- 步骤 4 (d, e):将 ToNumeric 应用于两侧

现在我们有了NaN > 0,即false因为任意时刻NaN涉及任意关系运算,结果都是false

在对您提出的问题的评论中:

但为什么不比较就返回 false 呢。

> 一个比较。我认为你的意思是“没有分支操作或表达式”(如if或 条件运算符,? :)。如果是这样,这是因为表达式(包括关系表达式)具有结果值,无论您是否使用这些结果进行分支。表达式的结果>trueor false。如果您在 an 中使用它if,那很好,但您不必:

const a = 1 > 2;
console.log(a); // false


查看完整回答
反对 回复 2023-10-14
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信