Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS властивість Date.prototype

Загальний опис

Date.prototype - це прототип для всіх об'єктів дати в JavaScript, який містить методи та властивості, спільні для всіх дат. Ця властивість дозволяє розширювати базовий об'єкт дати, додаючи нові методи або змінюючи існуючі.

Прототипи використовуються для делегування властивостей та методів від одного об'єкта до іншого. Зокрема, коли створюється новий екземпляр об'єкта дати (через конструктор Date), цей об'єкт автоматично наслідує всі властивості та методи від Date.prototype.

Наприклад:

let today = new Date();
console.log(today.getFullYear()); // Повертає поточний рік, наприклад, 2023.

У цьому прикладі, метод getFullYear() насправді знаходиться у Date.prototype, а не в самому об'єкті today. Проте, завдяки механізму прототипів, об'єкт today може використовувати цей метод так, ніби він його власний.

Ви можете додавати власні методи до Date.prototype, щоб робити з датами щось специфічне для вашого застосунку.

Date.prototype.dayOfYear = function() {
    let start = new Date(this.getFullYear(), 0, 0);
    let difference = this - start;
    let oneDay = 1000 * 60 * 60 * 24;
    return Math.floor(difference / oneDay);
};

let myDate = new Date();
console.log(myDate.dayOfYear()); // Повертає номер дня в році.

Хоча можливо додавати власні методи до прототипів вбудованих конструкторів, рекомендується робити це обережно. Зміна базових прототипів може призвести до непередбачуваних наслідків, особливо якщо інші частини вашого коду (або сторонні бібліотеки) очікують стандартну поведінку.

Нотатка:

Хоча JavaScript дозволяє вам модифікувати Date.prototype, вам слід бути дуже обережними. Додавання або зміна методів у Date.prototype може спричинити конфлікти або непередбачувані результати, якщо ваш код буде взаємодіяти з іншими бібліотеками чи фреймворками.

Порада:

Для більш досвідчених програмістів це може здатися очевидним, але завжди переконайтеся, що об'єкт, з яким ви працюєте, є екземпляром Date, перш ніж використовувати специфічні для нього методи. Це може допомогти уникнути помилок у виконанні.

if (object instanceof Date) {
    console.log(object.getFullYear());
}
Порада:

Рекомендується докладно вивчити всі методи Date.prototype. Це дозволить оптимізувати роботу з датами, зробити код більш ефективним і читабельним, а також використовувати менш відомі, але корисні методи для специфічних задач.

Синтаксис

Date.prototype

Значення

Return

Переглядачі

Переглядач

1

1

1

3

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


У цьому прикладі ми створюємо новий об'єкт date, використовуючи конструктор Date(). Цей об'єкт за замовчуванням представляє поточний час і дату. Після цього ми використовуємо метод getFullYear(), щоб отримати поточний рік з об'єкта date і вивести його в консоль.

// Створюємо новий об'єкт дати
let date = new Date();

// Виводимо поточний рік
console.log("Поточний рік:", date.getFullYear());

У другому прикладі ми спочатку створюємо функцію isLeapYear, яка визначає, чи є конкретний рік високосним. Вона повертає true для високосних років та false для не високосних. Наступно, ми створюємо дату за допомогою конструктора Date із рядковим аргументом. Використовуючи метод getFullYear(), ми отримуємо рік цієї дати і перевіряємо його за допомогою нашої функції isLeapYear. Результат перевірки виводиться в консоль.

// Функція для перевірки, чи є рік високосним
function isLeapYear(year) {
    return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
}

// Створюємо дату
let someDate = new Date('2023-06-15');

// Визначаємо рік цієї дати
let year = someDate.getFullYear();

// Перевіряємо, чи є цей рік високосним
if (isLeapYear(year)) {
    console.log(year + " - високосний рік");
} else {
    console.log(year + " - не високосний рік");
}