6. Продвинута робота з функціями

시작하기. 무료입니다
또는 회원 가입 e메일 주소
6. Продвинута робота з функціями 저자: Mind Map: 6. Продвинута робота з функціями

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

1.1. Advanced functions

1.1.1. Залишкові параметри та оператор розширення

1.1.1.1. Залишкові параметри

1.1.1.1.1. Використовуються для створення нових функцій з невизначеним числом аргументів

1.1.1.1.2. Залишкові параметри завжди мають бути в кінці списку параметрів

1.1.1.2. Оператор розширення

1.1.1.2.1. З його допомогою можна вставити масив у функцію, яка працює зі звичайним списком аргументів

1.1.1.2.2. витягує окремі елементи з ітерабельної змінної/величини

1.1.1.3. Q&A

1.1.2. Замикання

1.1.2.1. LexicalEnvironment

1.1.2.1.1. У JavaScript у кожної функції, що виконується, блоку коду і скрипта є пов'язаний з ними внутрішній (прихований) об'єкт, що називається 'лексичним оточенням'. Він складається з:

1.1.2.2. То що ж таке це замикання?

1.1.2.2.1. Замикання – це функція, яка запам'ятовує свої зовнішні змінні та може отримати доступ до них. У деяких мовах це неможливо, або функція має бути написана спеціальним чином, щоб вийшло замикання. Але в JavaScript всі функції спочатку є замиканнями (є тільки один виняток - синтаксис "new Function"). Тобто вони автоматично запам'ятовують де були створені (за допомогою прихованої властивості `Enviroment`) і всі вони можуть отримати доступ до зовнішніх змінних.

1.1.2.2.2. Академічне визначення що таке 'замикання' https://uk.wikipedia.org/wiki/%D0%97%D0%B0%D0%BC%D0%B8%D0%BA%D0%B0%D0%BD%D0%BD%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)

1.1.2.3. IIFE

1.1.2.4. Q&A

1.1.3. Глобальний об'єкт

1.1.3.1. надає змінні та функції, доступні в будь-якому місці програми. За замовчуванням це ті, що вбудовані в мову чи середовище виконання.

1.1.3.1.1. Зараз він називається 'globalThis', колись в різних середовищах були різні імена

1.1.3.2. В нього можна записувати, але не рекомендується

1.1.3.3. Q&A

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

1.1.4.1. властивість 'name'

1.1.4.2. властивість 'length'

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

1.1.4.3.1. це не локальні змінні

1.1.4.3.2. Їх можна використовувати замість замикання

1.1.4.4. Q&A

1.1.5. Named Function Expression (NFE)

1.1.5.1. Воно дозволяє функції посилатися на себе

1.1.5.2. Воно не доступне за межами функції

1.1.5.3. Захищає від перезаписування змінної

1.1.5.4. Не працює з Function Declaration

1.1.5.5. Q&A

2. Епілог

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

2.1.1. Про оператор розширення https://www.freecodecamp.org/news/an-introduction-to-spread-syntax-in-javascript-fba39595922c/

2.1.2. Про замикання в JS: https://www.javascripttutorial.net/javascript-closure/

2.1.2.1. Ще про замикання в JS: https://www.w3schools.com/js/js_function_closures.asp

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

2.1.3. Про синтаксис new Function: https://davidwalsh.name/new-function

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

2.2.1. Q&A