Javascript 为什么无穷==无穷==1/0为假?

Javascript 为什么无穷==无穷==1/0为假?,javascript,infinity,Javascript,Infinity,问题很简单: Infinity == Infinity >> true Infinity == 1/0 >> true Infinity == Infinity == 1/0 >> false 为什么最后一次求值是false?因为无穷==无穷==1/0基本上是 (Infinity == Infinity) == 1/0 所以 是false它的外观如下所示 var d = (2 == 2); console.log(d) //true console.l

问题很简单:

Infinity == Infinity
>> true

Infinity == 1/0
>> true

Infinity == Infinity == 1/0
>> false

为什么最后一次求值是
false

因为
无穷==无穷==1/0
基本上是

(Infinity == Infinity) == 1/0
所以


false

它的外观如下所示

var d = (2 == 2);
console.log(d) //true
console.log(d == 2); //[true == 2] false
比较=始终返回布尔值
true或false
[
1或0
]


Infinity==Infinity==1/0
→ <代码>(无限==无限)=1/0→
true==1/0
()
Infinity==1/0
计算结果为
true
,因此
Infinity==true
计算结果为false。如果您先计算
Infinity==Infinity
,结果为
true
,然后
true==1/0
false
,则情况相同。这与任何其他类型完全相同:
“a”==“a”==“a”
结果为
false
但对于
1==1==1
@AfshinMehrabani则不是真的,因为
1==1
为真且
true==1
但是
true!==1
。这是严格和失去比较之间的区别。
var d = (2 == 2);
console.log(d) //true
console.log(d == 2); //[true == 2] false