为啥 javascript date1 == date2 不起作用? [复制]
Posted
技术标签:
【中文标题】为啥 javascript date1 == date2 不起作用? [复制]【英文标题】:why javascript date1 == date2 not working? [duplicate]为什么 javascript date1 == date2 不起作用? [复制] 【发布时间】:2014-03-20 19:14:32 【问题描述】:我有两个 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)。
谢谢。
【问题讨论】:
两个日期是两个不同的对象。 它是false
,原因相同 ==
是false
:它们是不同的对象。 .valueOf
返回一个数字,如果两个数字具有相同的值,则它们相等。
【参考方案1】:
这两个日期是两个不同的对象,因此它们不是“对象相等”。 JavaScript 允许您使用 == 比较字符串和数字,但所有其他类型都作为对象进行比较。
【讨论】:
【参考方案2】:当您比较两个不同的日期对象时,您不是在比较它们的值,而是在比较它们实际上是同一个对象。
即使两个日期对象设置为相同的日期和时间,它们也是两个独立的实例。可以把它想象成比较对内存中结构的引用。每个的内存位置都会不同。
【讨论】:
以上是关于为啥 javascript date1 == date2 不起作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章