Как сравнение двух объектов Date отображается в console.log

Результат false: два вызова new Date создают разные объекты, а == между объектами сравнивает их идентичность, не временные значения.

Короткий ответ

Что ответить на собеседовании

Результат false: два вызова new Date создают разные объекты, а == между объектами сравнивает их идентичность, не временные значения.

Подробный разбор

Ответ с пояснениями

Условие

Определите, какой результат будет напечатан в консоль при выполнении следующего кода:

console.log(new Date(2000,1,1) == new Date(2000,1,1)) 

Ответ

Результат false: два вызова new Date создают разные объекты, а == между объектами сравнивает их идентичность, не временные значения.

Обе даты представляют один момент при одинаковом окружении, но ссылки различны. Для сравнения времени используйте first.getTime() === second.getTime() или +first === +second. В конструкторе Date месяцы нумеруются с нуля: аргумент 1 означает февраль, а не январь. Оператор == не преобразует оба объекта в числа просто потому, что они имеют одинаковый тип Date.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее