gpt4 book ai didi

javascript - 为什么 undefined == undefined 是 true 而不是 undefined <= undefined?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:24 28 4
gpt4 key购买 nike

在 JavaScript 中这是真的:

undefined == undefined

但这是错误的:

undefined <= undefined

起初我以为<=运算符包含第一个,但我猜它试图将其转换为数字但失败了,但我没有找到任何文档来支持这一点。

最佳答案

<=运算符(operator) coerces both operands into actual Numbers在执行比较之前如果两个操作数都是原语 -- while == does not .1 Abstract relational comparison执行此转换实际发生的地方。操作ToNumberundefined 上执行产生 NaN (见链接表)。如果您随后查看抽象关系比较中的步骤 4c 和 4d,如果 <= 的任一操作数|被强制进入 NaN , 然后 undefined从抽象关系比较返回。回到第一个链接,您将在第 7 步中看到:

If r is true or undefined, return false. Otherwise, return true.

由于抽象关系比较返回 undefined , <=评估为假。

不那么正式,你可以这样看你的比较:

const first = Number(undefined); //or +undefined
const two = Number(undefined); //this is NaN
NaN <= NaN

NaN == NaN is never true, nor is NaN < NaN , NaN <= NaN是假的。


1 undefined == undefined根据摘要返回真SameValueNonNumber如果两个操作数是相同的值,但不是数字,则与相等运算符一起使用的操作。

关于javascript - 为什么 undefined == undefined 是 true 而不是 undefined <= undefined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48141235/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com