为什么在JavaScript中,"true" == true显示为false?
- 论坛
- 为什么在JavaScript中,"true" == true显示为false?
29 浏览
为什么在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。
我错过了什么吗?