The valueOf() method of Date instances returns the number of milliseconds for this date since the epoch, which is defined as the midnight at the beginning of January 1, 1970, UTC.
const date1 = new Date(Date.UTC(96, 1, 2, 3, 4, 5));
console.log(date1.valueOf());
// Expected output: 823230245000
const date2 = new Date("02 Feb 1996 03:04:05 GMT");
console.log(date2.valueOf());
// Expected output: 823230245000valueOf()None.
A number representing the timestamp, in milliseconds, of this date. Returns NaN if the date is invalid.
The valueOf() method is part of the type coercion protocol. Because Date has a [Symbol.toPrimitive]() method, that method always takes priority over valueOf() when a Date object is implicitly coerced to a number. However, Date.prototype[Symbol.toPrimitive]() still calls this.valueOf() internally.
The Date object overrides the valueOf() method of Object. Date.prototype.valueOf() returns the timestamp of the date, which is functionally equivalent to the Date.prototype.getTime() method.
const d = new Date(0); // 1970-01-01T00:00:00.000Z
console.log(d.valueOf()); // 0