Javascript - document.write的值(false == null)

min*_*nil 1 javascript

什么是价值 document.write(false == null).它应该是真正的权利(转换为同一类型比较之前- 转换为),如果为null是假的则比较应该返回true,但打印.为什么?

And*_*yle 5

您的初始假设是不正确的(因为您可能已经通过输出得出结果!). ==确实会做类型强制,但结果不一定是你所期望的. null是一个对象,其类型为null - false是一个类型为boolean的对象.没有强制性,其中nullboolean类型的对象可以是相等的,这就是为什么这是错误的.

undefined另一方面,对象可以被强制为null.

请注意,由于这个原因,双等于运算符的行为方式奇怪 - 它甚至不具有传递性.我强烈建议不要使用它,除非你知道它在你的输入域下的确切表现如何,你确定要这个.手动强制并使用===运算符几乎肯定会更好.