每个元素都包含相同的值。当他们自己检查这个值时,一切都会检查出来。但是当相互比较时,它们并不相等。帮助!谢谢!
time[x] == "2013-02-26 14:00:00" ?
真的
reference[x] == "2013-02-26 14:00:00" ?
真的
time[x] == reference[x] ?
错误的
time[x].valueOf() == reference[x].valueOf() ?
错误的
每个元素都包含相同的值。当他们自己检查这个值时,一切都会检查出来。但是当相互比较时,它们并不相等。帮助!谢谢!
time[x] == "2013-02-26 14:00:00" ?
真的
reference[x] == "2013-02-26 14:00:00" ?
真的
time[x] == reference[x] ?
错误的
time[x].valueOf() == reference[x].valueOf() ?
错误的
这可能会发生,因为这两个变量的类型不同。
如果其中一个变量包含一个Date
实例而另一个包含 a String
,则将它们与字符串文字进行比较将返回 true,而比较它们的valueOf()
结果将返回 false,因为valueOf()
aDate
返回自纪元以来的毫秒数,而不是人类可读的表示日期(相对于toString()
)。
var a = new Date()
a.toString() //"Wed Feb 27 2013 01:41:51 GMT+0300 (MSK)"
a.valueOf() //1361918511306
var b = "Wed Feb 27 2013 01:41:51 GMT+0300 (MSK)"
b.toString() //"Wed Feb 27 2013 01:41:51 GMT+0300 (MSK)"
b.valueOf() //"Wed Feb 27 2013 01:41:51 GMT+0300 (MSK)"
a == "Wed Feb 27 2013 01:41:51 GMT+0300 (MSK)" //true
b == "Wed Feb 27 2013 01:41:51 GMT+0300 (MSK)" //true
a == b //true
a === b //false - types are being compared as well
a.valueOf() == b.valueOf() //false - 1361918511306 compared to "Wed Feb 27 2013 01:41:51 GMT+0300 (MSK)"