今天优化代码的时候,发现一个问题,js比较日期是否相等时,我用==去比较,发现两个时间不相等但是运行结果却是true,然后去百度了下发现oldStartTime, startTime都是对象,类型为引用类型,所以如果需要比较他们,需要去比较他们的字面量值,而不是单纯的用 == 来比较。
var oldStartTime = new Date("2018-12-24");
var startTime = new Date("2018-12-24");
console.log(oldStartTime== startTime); //false
oldStartTime和startTime看上去是一样的,但是运行oldStartTime== startTime 返回的却是false.
解决方案如下:
1.console.log(oldStartTime .getTime() == startTime .getTime()); //true 用getTime()方法,就可以返回日期对应的数值,然后比较就可以了。
2.console.log(oldStartTime - startTime == 0); //true 这里用oldStartTime 减去startTime ,即可以得到它们之间的时间差,如果为0,那么肯定是相等的。
百度到的原文链接如下:
https://www.jb51.net/article/41263.htm