Функції
Last updated
Last updated
Функції в JavaScript є об'єктами, які використовуються для виконання конкретних завдань або операцій. Вони є однією з основних складових мови програмування та використовуються для групування коду, який можна використовувати багаторазово.
Функція приймає на вході параметри та повертає результат виконання коду.
Функції:
Оголошують за допомогою ключового слова function.
Після нього вказують імʼя функції - описове дієслово про те, що виконує ця функція.
Далі у круглих дужках передають параметри, якщо такі необхідні.
Далі у фігурних дужках прописують інструкції які виконуватиме функція.
Щоб викликати виконання функції пишуть її імʼя і далі пара круглих дужок всередині яких можна передавати параметри.
У функціях можна запланувати параметри, які мають прийти під час виклику функції. Функція розглядає ці параметри як змінні доступні тільки всередині самої функції.
У функції може не бути параметрів, тоді обовʼязково використовувати порожні круглі дужки. У функції може бути й більше одного параметра, тоді їх перераховують через кому.
Параметри створюються кожного разу під час виконання функції. Якщо функцію викликають кілька разів, то кожного разу це будуть нові параметри.
Аргументи - це значення для оголошених у функції параметрів. Аргументи передають під час виклику функції у круглих дужках.
Аргументи передають в порядку оголошення параметрів. Перший аргумент присвоюється першому параметру і тд.
Якщо параметрів більше ніж передано аргументів, то значення параметрів будуть undefined.
У вищенаведених прикладах функція просто виводила в консолі результат своєї роботи. Але частіше нам від функції потрібно отримати результат її обчислення. Для цього існує оператор return, який повертає значення, яке можна присвоїти якійсь змінній. Якщо програма бачить ключове слово return, то припиняє роботу функції і повертає те що вказано після цього ключового слова.
Оператор return без явно вказаного значення повертає спеціальне значення undefined. За відсутності return в тілі функції, вона все одно поверне undefined.
Коли виконується програма й інтерпретатор зустрічає виклик функції, то він переривається, виконує повністю код функції, а після закінчення повертається в те місце коду, де зупинився.
Значення параметрів функції можна встановити за замовчуванням, якщо викликати функцію без передання відповідних аргументів. Це робиться шляхом вказання значень за замовчуванням у самому оголошенні функції. Тоді якщо не буде передано аргумент - застосується це значення.
Можна встановити значення за замовчанням і якщо параметрів більше ніж аргументів, щоб не було присвоєно значення undefined.
arguments - є псевдомасивом, який доступний всередині всіх функцій і містить всі передані аргументи у вигляді списку. Цей об'єкт не є справжнім масивом, але виглядає подібно до масиву і дозволяє отримувати доступ до переданих параметрів. Цей псевдомасив має властивість length, але йому недоступні більшість методів масивів.
Вище було зазначено, що псевдомасиву arguments недоступні деякі методи (наприклад slice() або includes()). Відтак, щоб мати змогу обробляти ці аргументи їх потрібно перетворити в повноцінний масив.
Можна створити новий масив за допомогою методу Array.from().
Можна створити новий масив за допомогою операції ... (rest). Вона збирає аргументи в масив і зберігає його у змінну. Збирають всі аргументи, за допомогою операції rest безпосередньо в підписі функції.
Патерн "Раннього повернення" (англ. Early Return Pattern) використовується для оптимізації коду функцій шляхом використання оператора return для завершення функції раніше, ніж досягнута її кінцева частина. Це дозволяє зменшити вкладеність умовних операторів та покращити читабельність коду.
Основна ідея полягає в тому, що у випадку виконання певної умови або валідації даних функція має повернути значення або вийти з функції раніше.
Наприклад, розглянемо функцію, яка перевіряє, чи є користувач повнолітнім:
У патерні "Раннього повернення" ми можемо переписати цю функцію таким чином:
Це дозволяє уникнути вкладеності умовних операторів і виразити логіку функції більш чітко та просто. Якщо умова в першому if виконується, функція поверне результат і завершиться. Якщо умова не виконується, функція перейде до наступного оператора return для повернення іншого значення.
Цей підхід робить код більш зрозумілим, зменшує кількість вкладених умовних блоків і сприяє покращенню читабельності.
Функціональний вираз - це спосіб оголошення функції в JavaScript через присвоєння функції змінній.
У цьому прикладі функція присвоюється змінній greeting через функціональний вираз. Функція не має імені у своєму оголошенні (анонімна функція), але може бути викликана за допомогою змінної greeting.
Функціональні вирази можна використовувати в різних ситуаціях, наприклад:
Передача функцій як аргументів в інші функції (функціональне програмування).
Використання умовних функцій (функціональність визначається за умовою).
Створення замикань (closure) - функцій, що містять в собі оточуючий контекст.
Функціональні вирази дозволяють створювати більш гнучкі структури коду, зберігати функції у змінних і передавати їх у якості аргументів, що є корисним для реалізації багатьох підходів програмування.
На противагу при оголошенні функції її можна викликати до місця її створення в коді.
Покликання: