【发布时间】:2014-05-10 07:56:28
【问题描述】:
我知道 JavaScript 中的 == 是与类型强制比较。而且我知道以下语句是true:
'' == false;
' ' == false;
'0' == false;
'\n' == false;
但是,我无法与左侧的“你好”进行比较:
'hello' == true; // no this is false
'hello' == false; // no this is false
'hello' == 1; // no this is false
'hello' == 0; // no this is false
除了 'hello' 之外,还有什么 'hello' 可以与 true 的结果相比较吗?
【问题讨论】:
-
没有。如果您不允许其他东西包含
"hello",那么没有其他东西会强制将==转换为"hello"。这个问题的意义何在?现在,如果没有问题背后的一些逻辑,这似乎毫无意义。 -
如果你研究强制规则,你会发现只有
==到"Hello"的东西有一个.toString()方法返回"Hello"这样的东西:@987654321 @ 或者这个:jsfiddle.net/jfriend00/KSgwb -
如果你想知道比较算法是如何工作的,可以看这里:ecma-international.org/ecma-262/5.1/#sec-11.9.3
-
@jfriend00:也许您应该将解释发布为答案。
-
@FelixKling - 我把它放在一个答案中。
标签: javascript string-comparison ecmascript-5 triple-equals