为什么javascript date1 == date2不工作?

时间:2014-02-20 03:53:02

标签: javascript

我有两个javascript日期,dt和Frefdate。在萤火虫中,两个值都是Date {Fri Apr 08 2005 00:00:00 GMT + 1000(AUS Eastern Summer Time)}。

但是dt == Frefdate是假的。 我必须使用dt.valueOf()== Frefdate.valueOf()来比较这两个日期。为什么呢?

在w3schools网站上,日期比较可以是date1> date2。(见http://www.w3schools.com/js/js_obj_date.asp)。

谢谢。

2 个答案:

答案 0 :(得分:1)

当你比较两个不同的日期对象时,你没有比较它们的值,你比较它们实际上是同一个对象。

即使两个日期对象设置为相同的日期和时间,它们也是两个独立的实例。可以把它想象成比较对内存中结构的引用。每个的内存位置都不同。

答案 1 :(得分:0)

这两个日期是两个不同的对象,因此它们不是“对象相等”。 JavaScript允许您使用==比较字符串和数字,但所有其他类型都将作为对象进行比较。