Тест:14 вопросов о JavaScript Date
Научись впечатлять гостейJS‑викторинами! ✨
Насколько хорошо вы знаете класс Date?
- Докажите своё мастерство в JavaScript! 🚀
- Регистрация не требуется. ✨
- Выбор из нескольких вариантов. 🤖 … Насколько это может быть сложным, а?
План
Класс Date в JavaScript известен своей коварной API. Он унаследован из Java, а, вероятно, вдохновлён древними неолитическими методами измерения времени.
Борьба с Date заставляет многих разработчиков без вопросов обращаться к сторонним библиотекам. Хотя это часто безопасный и надёжный выбор, такие библиотеки редко нужны для простого форматирования дат или локализации!
Этот тест создан, чтобы проверить (и углубить) ваши знания нативного API Date. Используйте зелёные кнопки для подсказок и объяснений! К концу задания вы, надеемся, укрепите понимание работы Date в JavaScript.
ПРИМЕЧАНИЕ: Предполагается, что все примеры работают в локальном часовом поясе GMT‑7.
👇 14 вопросов ниже 👇
Какую локальную календарную дату представляет этот объект? Формат вывода в консоли зависит от среды.
const d1 = new Date(2020, 1, 1)console.log(d1)Аргумент month начинается с нуля. Диапазон 0‑11 (для западных календарей).
‘February’ имеет индекс 1. (Думайте об этом как о поиске в массиве.)
Какую локальную календарную дату представляет этот объект? Формат вывода в консоли зависит от среды.
const d2 = new Date(2020, 0, 1)console.log(d2)Аргумент month считается с нуля. Диапазон — 0‑11 (для западных календарей).
‘January’ имеет индекс 0. (Это как поиск в массиве.)
Что будет включено в вывод?
const d3 = Date('Thu, 01 Jan 1970 00:00:00 GMT')console.log(d3)Без new функция Date(...) игнорирует аргументы и возвращает строку с текущими датой и временем. Конструктор new Date(...) создаёт объект даты с учётом аргументов. Это разные режимы вызова, поэтому здесь не получится дата эпохи Unix.
Предположим, что локальный часовой пояс имеет фиксированное смещение GMT−7.
Что будет включено в вывод?
const date = new Date(2020) console.log(date.getFullYear())Экземпляр Date, созданный с единственным целочисленным аргументом, интерпретируется как значение Unix Epoch. Epoch — это количество миллисекунд, прошедших с 1 янв 1970 года.
Значение 2020 (миллисекунд) соответствует 2 секундам после 1 янв 1970 года.
Поскольку наш локальный часовой пояс имеет отрицательное смещение ‑7 часов, получаем Wed Dec 31 1969 17:00:02 GMT-0700 (Mountain Standard Time).
Можно обойти смещение локального часового пояса, используя .getUTCFullYear().
Что будет включено в вывод?
var date = Date.UTC('2020-01-02T00:00') console.log(date.toUTCString())Вы получите TypeError: date.toUTCString is not a function, поскольку Date.UTC() возвращает число, а не объект даты. Здесь строка не является допустимым числовым годом, поэтому результат — NaN. У числа нет метода toUTCString.
Какую локальную календарную дату представляет этот объект? Формат вывода в консоли зависит от среды.
const d = new Date(2020, 0, 1) d.setDate(1) console.log(d)Метод .setDate() устанавливает день месяца, исходя из текущего месяца данного экземпляра.
Если передать значение, выходящее за пределы количества дней в месяце, значение месяца будет скорректировано (например, setDate(32) в январе будет вычислено как 1 февраля.)
Какую локальную календарную дату представляет этот объект? Формат вывода в консоли зависит от среды.
const d = new Date(2020, 0, 1) d.setMonth(1) console.log(d)Метод .setMonth() задает месяц указанного экземпляра даты.
Аргумент month считается с нуля и имеет диапазон 0‑11 (для западных календарей.)
Какую локальную календарную дату представляет этот объект? Формат вывода в консоли зависит от среды.
const d = new Date(2020, 0, 1) d.setMonth(12) console.log(d)Метод .setMonth() задаёт месяц у указанного экземпляра даты.
Аргумент month считается с нуля, диапазон значений — 0‑11 (для западных календарей).
Здесь мы видим, что год меняется на 2021, потому что setMonth(12) на 1 больше, чем 11 (декабрь).
Какую локальную календарную дату представляет этот объект? Формат вывода в консоли зависит от среды.
const d = new Date(2020, 0, 1) d.setMonth(13) console.log(d)Метод .setMonth() устанавливает месяц у указанного экземпляра даты.
Аргумент month считается с нуля, диапазон 0‑11 (для западных календарей).
Здесь мы видим, что месяц и год скорректированы до февраля 2021 года, потому что setMonth(13) на 2 больше 11 (декабря).
Какую локальную календарную дату представляет этот объект? Формат вывода в консоли зависит от среды.
const d = new Date(2020, 0, 1) d.setMonth(-1) console.log(d)Метод .setMonth() устанавливает месяц указанного экземпляра даты.
Аргумент месяца считается с нуля и может принимать значения от 0 до 11 (по западному календарю).
Здесь мы видим, как месяц и год откатываются к декабрю 2019 года, потому что setMonth(-1) меньше 0 (январь).
