为什么在JavaScript中,"true" == true显示为false?

29 浏览
0 Comments

为什么在JavaScript中,"true" == true显示为false?

MDC描述了'=='操作符如下:

如果两个操作数的类型不同,JavaScript会转换操作数然后应用严格比较。如果任一操作数是数字或布尔值,如果可能,操作数将转换为数字;如果任一操作数是字符串,另一个操作数将转换为字符串(如果可能)。

考虑到这一点,我会将"true" == true评估如下:

1. 它们的类型相同吗?否

2. 任一操作数是数字或布尔值吗?是

3. 我们能将两者都转换为数字吗?否(isNaN(Number("true")) // true)

4. 任一操作数是字符串吗?是

5. 我们能将另一个操作数转换为字符串吗?是(String(true) === "true" // true)

最终我得到的是字符串"true"和"true",应该评估为true,但是JavaScript显示为false。

我错过了什么吗?

0