
1. Частина, де ми говоримо про JS
1.1. Object
1.1.1. Object - це 'ящик з іменованими ящиками та кнопками'
1.1.1.1. CRUD операції
1.1.1.1.1. Нюанс про тип ключів
1.1.1.1.2. особливості доступу через квадратні дужки
1.1.1.2. перевірка існування ключів
1.1.1.2.1. "key" in object
1.1.1.3. робота з циклом
1.1.1.3.1. for..in
1.1.1.4. Опційний ланцюжок '?.'
1.1.1.4.1. Працює з Symbol
1.1.1.4.2. Працює для читання/видалення, але не для запису
1.1.1.5. Object.keys() та Object.values() для отримання значень об'єкту
1.1.1.5.1. Ігнорують Symbol
1.1.1.5.2. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
1.1.1.5.3. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values
1.1.1.6. Перетворення в масив
1.1.1.6.1. Object.entries() та Object.fromEntries()
1.1.1.7. Та не так багато чого іншого...
1.1.1.8. Q&A
1.1.2. Примітивний тип Symbol
1.1.2.1. унікальність
1.1.2.1.1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol
1.1.2.2. певна прихованість
1.1.2.2.1. https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols
1.1.2.2.2. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys
1.1.2.3. глобальні символи
1.1.2.3.1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/for
1.1.2.3.2. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/keyFor
1.1.2.4. Системні символи
1.1.2.4.1. https://tc39.es/ecma262/#sec-well-known-symbols
1.1.2.5. Q&A
1.1.3. Про що варто пам'ятати?
1.1.3.1. Null теж має тип 'object', Array теж має тип 'object'
1.1.3.2. Копіюваня, а точніше 'клонування'
1.1.3.2.1. Поверхневе клонування
1.1.3.2.2. Глибоке клонування
1.1.3.3. як зробити об'єкт незмінюваним
1.1.3.3.1. const не працює
1.1.3.3.2. Object.freeze() працює
1.1.3.4. Q&A
1.1.4. Вбудований об'єкт Date
1.1.4.1. Можемо створити через new Date(), з аргументами і без них
1.1.4.1.1. Аргументи можна задавати як:
1.1.4.1.2. Або ж можемо створити через Date() без аргументів
1.1.4.2. Можемо отримати компоненти дати (get)
1.1.4.2.1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#instance_methods
1.1.4.3. Можемо встановити компоненти дати (set)
1.1.4.3.1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#instance_methods
1.1.4.4. Можемо зробити заміри часу
1.1.4.4.1. Date.now()
1.1.4.4.2. performance.now()
1.1.4.5. Можемо зробити парсинг строки з датою
1.1.4.5.1. Date.parse()
1.1.4.6. TL;DR
1.1.4.6.1. Дата та час у JavaScript представлені об’єктом Date. Ми не можемо створити “тільки дату” або “тільки час”: об’єкти Date завжди мають в собі обидва значення
1.1.4.6.2. Дні тижня в getDay() рахуються з нуля (з неділі)
1.1.4.6.3. Місяці рахуються з нуля (січень це нульовий місяць)
1.1.4.6.4. Date автоматично виправляє себе, коли встановлено компоненти, які виходять за межі. Це добре для додавання/віднімання днів/місяців/годин.
1.1.4.6.5. Дати можуть відніматися, таким чином можна отримати різницю в мілісекундах. Це тому, що Date стає timestamp, коли перетворюється на число.
1.1.4.6.6. Щоб швидко отримати поточний timestamp використовуйте Date.now()
1.1.4.7. Q&A
2. Епілог
2.1. Екстра матеріали
2.1.1. Про перетворення об'єктів у примітиви: https://www.codingninjas.com/codestudio/library/converting-object-to-primitives-in-javascript
2.1.2. Документація по вбудованому об'єкту Date: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
2.1.3. Ще про об'єкт Date: https://css-tricks.com/everything-you-need-to-know-about-date-in-javascript/
2.2. Тизер-трейлер наступного вебінару
2.2.1. Q&A