почему + new Date () возвращает то же, что new Date (). getTime ()?

1

Я читал некоторый исходный код и нашел это. почему +new Date() возвращает то же, что и новая Date(). getTime()? Каков механизм этого?

var date = new Date()
+data == date.getTime() // true
  • 0
    Почему бы и нет? Обратите внимание, что date.valueOf() возвращает то же значение
Теги:
date

2 ответа

1
Лучший ответ

Это потому, что оператор унарного + когда он используется для типов, отличных от строк, будет внутренне вызывать valueOf. В случае даты она функционально эквивалентна Date.prototype.getTime, поскольку обе выполняют ту же абстрактную операцию.

  • 1
    Чем это отличается от того, что я сказал? ;) FWIW, Date.prototype.valueOf, Date.prototype.valueOf вызывается только тогда, когда значение является объектом даты, а не значением другого типа.
  • 0
    @FelixKling Я писал свой ответ одновременно. Я бы не стал слишком много размышлять о привилегиях с метками времени.
3

Оператор унарного + преобразует операнд в число. В этом процессе date.valueOf, который выполняет те же вычисления, что и date.getTime.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню