我正在学习==
和===
之间的区别,并发现了这个答案,它帮助我更好地理解了这个概念。然而,我对其中一个示例感到困惑:
'0' == false // true
这可能有道理,因为 ==
不检查类型。但是我在控制台中尝试了一些可能的强制转换,并发现以下内容:
Boolean('0') // true
String(false) // "false"
我本以为
'0' == false
的真值与 '0' === String(false)
相同,但事实并非如此。那么这个强制转换实际上是如何工作的呢?我是否缺少更基本的类型?
==
的可能令人惊讶的例子。 - ToolmakerSteve