Оператор function в JavaScript — оголошення функції


Загальний опис

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

Створення функції починається з ключового слова function, за яким іде ім'я функції (наприклад, calculateSum). Потім у круглих дужках (()) задаються параметри — вхідні дані, які функція приймає. Далі у фігурних дужках ({}) розташовується тіло функції, яке виконує інструкції.

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

Ось приклад простої функції, яка обчислює суму двох чисел:

function calculateSum(a, b) {
  return a + b;
}
console.log(calculateSum(5, 3)); // Виведе: 8

Функції можна викликати необмежену кількість разів, змінюючи вхідні дані:

console.log(calculateSum(10, 15)); // Виведе: 25
console.log(calculateSum(7, 2));  // Виведе: 9

Також функції можна вкладати одна в одну:

function square(x) {
  return x * x;
}
function sumOfSquares(a, b) {
  return square(a) + square(b);
}
console.log(sumOfSquares(2, 3)); // Виведе: 13

Функції є іменованими (мають ім'я) або анонімними (без імені). Анонімні функції часто використовуються як значення змінної:

const multiply = function(x, y) {
  return x * y;
};
console.log(multiply(4, 5)); // Виведе: 20

Ще один тип функцій — стрілкові функції (arrow functions), які спрощують синтаксис:

const subtract = (a, b) => a - b;
console.log(subtract(10, 4)); // Виведе: 6

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

автор: Bond

Порада

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

function logMessage(message) {
  console.log(message);
}
logMessage("Привіт, світ!");
автор: Bond
Порада

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

function greet(name = "Гість") {
  return `Привіт, ${name}!`;
}
console.log(greet()); // Привіт, Гість!
автор: Bond
Порада

Функція може викликати саму себе — це називається рекурсія. Використовуйте її для складних завдань, таких як підрахунок факторіалу:

function factorial(n) {
  if (n === 1) return 1;
  return n * factorial(n - 1);
}
console.log(factorial(5)); // 120
автор: Bond

Синтаксис

function name(параметри) {
  // Тіло функції
  return; // Опціонально
}

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 3 12 3
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

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

function createCounter() {
  let count = 0;
  return function() {
    count++;
    return count;
  };
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
автор: Bond

Цей приклад зберігає результати обчислень у кеші, щоб уникнути повторних розрахунків.

function memoize(fn) {
  const cache = {};
  return function(arg) {
    if (cache[arg]) {
      return cache[arg];
    }
    const result = fn(arg);
    cache[arg] = result;
    return result;
  };
}
const square = memoize(x => x * x);
console.log(square(5)); // 25 (обчислено)
console.log(square(5)); // 25 (взято з кешу)
автор: Bond

Користувач вводить температуру, обирає напрямок конвертації (з Цельсія у Фаренгейт або навпаки) та натискає кнопку. JavaScript-функція convertTemperature обробляє значення і виводить результат на сторінку. Це чудовий приклад того, як функції забезпечують динамічну взаємодію з користувачем.

HTML

<header>
  <h2 class="title">Конвертер температур</h2>
  <p class="description">Конвертує значення між Цельсієм і Фаренгейтом.</p>
</header>
<main>
  <div class="result">
    <!-- Форма для введення значення -->
    <form id="converterForm">
      <label for="temperature">Введіть температуру:</label>
      <input type="number" id="temperature" name="temperature" required>
      
      <label for="conversionType">Тип конвертації:</label>
      <select id="conversionType" name="conversionType">
        <option value="toCelsius">З Фаренгейта в Цельсій</option>
        <option value="toFahrenheit">З Цельсія в Фаренгейт</option>
      </select>
      
      <button type="button" id="convertBtn">Конвертувати</button>
    </form>
    <!-- Місце для результату -->
    <p id="resultText">Результат: <span id="resultValue">-</span></p>
  </div>
</main>

CSS

body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

header h2.title {
  padding-bottom: 15px;
  border-bottom: 1px solid #999;
}

header p.description {
  font-style: italic;
  color: #222;
}

.result {
  background-color: #f8f8f8;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

form label {
  display: block;
  margin: 10px 0 5px;
}

form input,
form select {
  padding: 5px;
  margin-bottom: 10px;
  width: 100%;
  max-width: 300px;
}

form button {
  padding: 10px 20px;
  background-color: #007bff;
  color: #fff;
  border: none;
  cursor: pointer;
}

form button:hover {
  background-color: #0056b3;
}

#resultText {
  margin-top: 15px;
  font-weight: bold;
  font-size: 1.2em;
}

JS

// Функція для конвертації температури
function convertTemperature(value, type) {
  if (type === "toCelsius") {
    return (value - 32) * 5 / 9; // З Фаренгейта в Цельсій
  } else if (type === "toFahrenheit") {
    return value * 9 / 5 + 32; // З Цельсія в Фаренгейт
  }
  return null; // Якщо тип некоректний
}

// Обробник кнопки конвертації
document.getElementById("convertBtn").addEventListener("click", function () {
  // Отримуємо введені значення
  const temperature = parseFloat(document.getElementById("temperature").value);
  const conversionType = document.getElementById("conversionType").value;

  // Перевіряємо, чи введено число
  if (isNaN(temperature)) {
    alert("Будь ласка, введіть коректне число!");
    return;
  }

  // Виконуємо конвертацію
  const result = convertTemperature(temperature, conversionType);

  // Відображаємо результат
  document.getElementById("resultValue").textContent = result.toFixed(2);
});
//# sourceURL=pen.js
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід