真实值== false returntrue

问题描述 投票:0回答:1

我是JavaScript的初学者,并得知只有有限的虚假值:

false, 0, -0, BigInt 0n, “”, null, undefined, NaN

==
但是,当我使用具有真实价值的
// outputs are written as comments console.log(false == "0"); //true console.log(false == []); //true console.log(Boolean("0")); //true console.log(Boolean([])); //true console.log(Boolean([]) == []); //false
运算符时,情况似乎并非如此。

我无法理解平等操作员和布尔输出的问题。
false == "0"
javascript boolean-logic boolean-expression boolean-operations equality-operator
1个回答
0
投票

我相信您正在遇到这一点:https://stackoverflow.com/a/14581884/65387

I.E。比较

"0"
时,
0
转换为虚假的
false == []
,这就是为什么它们比较相等的原因。

对于

typeof [] === 'object'

,您正在击中对象案例(
+[]
),因此它正在做
胁迫,本质上也是0
	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.