Функції

Функції — це можливість створювати власні команди.

Часто буває ситуація, коли якийсь блок коду повторюється в програмі більше одного разу. Так ось, ви можете цьому блоку коду дати ім'я, і це буде називатися функцією. Потім можна буде викликати цю функцію багато разів, так само як ви викликаєте функції console.log, alert, prompt і т.д.

Функція може мати параметри (ще їх називають аргументи) — їх визначають у заголовку функції, що вона приймає на вхід при виклику. Параметри можуть використовуватися всередині функції для здійснення будь-яких дій або обчислення значення, що повертається функцією.

Наприклад, функція console.log приймає параметр, який вона виводить на екран. Функція Math.min (1,2) приймає два параметри, і повертає найменше число з переданих їй.

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

function funcName(arg1, arg2, ...) {
    // do something
}

Приклад функції, яка робить щось корисне:

function good(name) {
   console.log("YOU ARE COOL, " + name + "! :-)");
}

Цей код створить функцію (команду) з назвою good, але не викличе її. Тепер, якщо раптово нам треба вивести на екран якесь мотиваційне повідомлення, ми можемо просто сказати:

good("Vasya") // виведе на екран: YOU ARE COOL, Vasya! :-)

Команда return потрібна для того, щоб функція повернула значення туди, звідки вона була викликана. Як prompt наприклад. Або синус якогось кута в тригонометрії, теж повертає власне число.

function sum(a, b) {
    return a + b;
}

console.log(sum(1, 2)); // 3

У функції може бути кілька команд return, але комп'ютер закінчить виконання функції при зустрічі першої з них.

Якщо ж при виклику функції виконана в ній гілка коду не містила ключового слова return, то функція повертає спеціальне значення undefined. Можете пошукати про нього в інтернеті.

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

Як аргументи у функцію можна передавати будь-які допустимі в js вирази.

Тепер з'ясуйте, чому:

Щоб перевірити себе, передбачте:

Якщо з'ясували чому так, передбачте:

... вам треба добре розуміти, як працюють функції.

Якщо ви вже пройшли масиви, то читайте наступний блок, інакше можете пропустити:

Передача масивів у функції

Як ви пам'ятаєте з теми про масиви, коли ми пишемо A = B і при цьому B це масив, то ми скопіюємо не масив, а тільки посилання на нього, в змінну A. Те ж саме при передачі масиву в функцію — ми передамо посилання на нього, і якщо функція змінить вміст масиву, то ... він зміниться :) Детальніше ви з цим розберетесь тільки після вступу в Ш++, для складання вступного тестування вам ця інформація не знадобиться :)

Оголошення та виклик функцій

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

Все як зі змінними, тільки для оголошення —function замість let

Функції в функціях

JavaScript дозволяє створювати функції і в глобальному скоупі, так і всередині інших функцій. Причому функції всередині та ззовні можуть навіть мати однакові імена, і це не викликатиме помилку. Чому так — знову ж, читайте про скоупи.

Сильно заморочуватись на цьому поки не варто. Просто знайте, що така можливість є.

Ось код:

Закоментуйте по черзі оголошення bar() — внутрішню, зовнішню та обидві разом. Всі три варіанта запустіть і дивіться, що буде. Подумайте, чому саме так.

Додаткові матеріали

Про функціїarrow-up-right (uk.javascript.info)

Ще про функціїarrow-up-right (яваскрипт.укр)

Для вас ми записали власне відео про функції:

Вирішили залишити посилання і на це відео, можливо різні підходи допоможуть краще розібратись в темі:

Обов'язкові задачі

circle-exclamation
Hello world (Codewars)chevron-rightНайбільше числоchevron-rightМасив у зворотному порядкуchevron-right

Виникли питання або труднощі? Зверніться за допомогою до Ш++.

Last updated

Was this helpful?