它将返回什么新日期(DateObject)

What will it return new Date( DateObject )?

本文关键字:日期 DateObject 新日期 返回 什么      更新时间:2023-09-26

var DateObj = new Date(dateString); var Date = new Date(DateObj);

实际日期是什么?它还是这样的约会对象吗?

我刚刚在我正在做的项目中看到了这段代码,所以我很好奇它到底做了什么。此外,我不会这么做,但我想知道为什么不这么做?

new Date(dateString);

将返回日期对象的实例http://www.w3schools.com/jsref/jsref_obj_date.asp

new Date(DateObj)

返回日期对象

您的Date变量现在将设置为Date对象的一个实例。在这个范围内,您现在已经有效地覆盖了Date对象。

不要这样做。

实际日期是什么?它还是这样的约会对象吗?

使用instanceof运算符进行检查非常容易

var DateObj = new Date();
var DateObj2 = new Date(DateObj);
console.log(DateObj2 instanceof Date); // true

所以简短的答案是肯定的,它将是Date实例。

答案更长。如果您对将Date对象传递到new Date构造函数中会发生什么感兴趣,则需要参考ECMAScript规范。

第15.9.3.2节新日期(值)描述行为:

  1. v为ToPrimitive(

因此,算法的第一步要求将传递的值转换为基元值。对于对象类型(如日期),基元值是"对象的默认值"。最后,对于Date对象,valueOftoString方法都返回一个数字当前时间戳。