javascript – 为什么JS中的true ==’true’语句返回false?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么JS中的true ==’true’语句返回false?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题在标题中.我刚尝试在Chrome控制台中运行下一个语句并且对我来说很奇怪(对我来说)结果:
true == 'true' // returns false
'true' == true // returns false

为什么会这样?为什么不在那里进行类型转换,但在下一个声明中有效?

if ('true') true // returns true

解决方法

因为它们不代表同样可转换的类型/值. ==使用的转换比if(‘true’)使用的简单toBoolean转换复杂得多.

所以鉴于此代码为true ==’true’,它会发现:

“If Type(x) is Boolean,return the result of the comparison ToNumber(x) == y.”

所以你看它开始成为ToNumber(true)==’true’,这是1 ==’true’,然后再次尝试,它现在发现:

If Type(x) is Number and Type(y) is String,return the result of the comparison x == ToNumber(y).

所以现在它正在做1 == ToNumber(‘true’),即1 == NaN,当然这是假的.

原文链接:https://www.f2er.com/js/156045.html

猜你在找的JavaScript相关文章