8. Продвинута робота з функціями (2)

Iniziamo. È gratuito!
o registrati con il tuo indirizzo email
8. Продвинута робота з функціями (2) da Mind Map: 8. Продвинута робота з функціями (2)

1. Частина, де ми говоримо про JS

1.1. Advanced functions

1.1.1. Робота над помилками та трохи інтерактиву

1.1.1.1. Мемна деконструкція ситуації яка сталась

1.1.1.1.1. Трохи інтерактиву

1.1.2. Планування виконання через setTimeout / setInterval

1.1.2.1. `setTimeout` викликає функцію один раз через певний проміжок часу

1.1.2.1.1. як перший аргумент передається посилання на функцію або сама функція, але не її виклик

1.1.2.1.2. Можна відміняти зворотній відлік через 'clearTimeout'

1.1.2.1.3. Частковий приклад - 'setTimeout' з нульовою затримкою

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

1.1.2.2.1. Альтернативний спосіб - вкладений 'setTimeout'. Він дозволяє задати затримку між виконаннями точніше, ніж 'setInterval', бо його відлік починається в кінці фіналу попереднього виклику

1.1.2.3. Усі методи планування не гарантують точну затримку. Наприклад, таймер у браузері може уповільнюватися з багатьох причин: - Перевантажений процесор - Вкладка браузера у фоновому режимі - Робота ноутбука від акумулятора

1.1.2.4. Q&A

1.1.3. Методи об'єктів

1.1.3.1. Це функції, які знаходяться у властивостях об'єкта

1.1.3.2. Приклади написання методів об'єктів

1.1.3.3. Ключове слово`this`

1.1.3.3.1. Вказує на об'єкт, який використовується для виклику методу.

1.1.3.3.2. Його значення визначається під час виконання коду

1.1.3.3.3. значення `this` не є фіксованим

1.1.3.3.4. `this` відсутній у стрілкових функцій

1.1.3.4. Q&A

1.1.4. Контекст виконання

1.1.4.1. Проблема втрати контексту

1.1.4.2. Варіанти вирішення проблеми

1.1.4.2.1. Ненадійне рішення - використання функцій-обгорток

1.1.4.2.2. Надійне рішення - bind

1.1.4.3. Q&A

1.1.5. Методи call та apply

1.1.5.1. викликають функцію із зазначеним контекстом `this`

1.1.5.1.1. та додатковими аргументами

1.1.5.2. Практичне використання

1.1.5.2.1. Паттерн 'декоратор'

1.1.5.2.2. Каррінг (currying)

1.1.5.3. Q&A

1.1.6. Моменти, які варто додати як продовження до попереднього вебінару

1.1.6.1. Об'єкт функції

1.1.6.1.1. Користувацькі властивості

1.1.6.1.2. Named Function Expression (NFE)

1.1.6.1.3. Q&A

2. Епілог

2.1. Екстра матеріали

2.1.1. Про використання bind, call, apply: https://www.freecodecamp.org/news/understand-call-apply-and-bind-in-javascript-with-examples/

2.1.2. Приклади та візуалізації використання bind, call, apply: https://betterprogramming.pub/when-to-use-bind-call-and-apply-in-javascript-1ae9d7fa66d5

2.1.3. Замикання на прикладах: https://www.programiz.com/javascript/closure

2.1.3.1. Відеопояснення замикання за 100 секунд: https://www.youtube.com/watch?v=vKJpN5FAeF4&ab_channel=Fireship

2.2. Домашнє завдання

2.3. Тизер-трейлер наступного вебінару

2.3.1. Q&A