JavaScript Параметри функції
JavaScript function
не виконує жодних перевірок значень параметрів (аргументів).
Параметри та аргументи функції
Раніше в цьому посібнику ви дізналися, що функції можуть мати параметри:
function functionName(параметр1, параметр2, параметр3) {
// код для виконання
}
Параметри функції – це імена, перелічені у визначенні функції.
Аргументи функції – це справжні значення, які передаються (і отримуються) функцією.
Правила параметрів
Визначення функцій JavaScript не вказують типи даних для параметрів.
Функції JavaScript не виконують перевірку типу переданих аргументів.
Функції JavaScript не перевіряють кількість отриманих аргументів.
Параметри за замовчуванням
Якщо функція викликається з відсутніми аргументами (менше заявлених), для відсутніх значень буде встановлено undefined
(невизначене).
Іноді це прийнятно, але іноді краще призначити параметру значення за замовчуванням:
Значення параметрів за замовчуванням
ES6 дозволяє параметрам функції мати значення за замовчуванням.
Приклад
Якщо y не передано або не визначено, тоді y = 10.
function myFunction(x, y = 10) {
return x + y;
}
myFunction(5);
Спробуйте самі »
Параметр залишку функції
Параметр rest (...) дозволяє функції обробляти невизначену кількість аргументів як масив:
Приклад
function sum(...args) {
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
let x = sum(4, 9, 16, 25, 29, 100, 66, 77);
Спробуйте самі »
Об’єкт аргументів
Функції JavaScript мають вбудований об’єкт, який називається об’єкт аргументів.
Об’єкт аргументу містить масив аргументів, які використовувалися під час виклику функції.
Таким чином ви можете просто скористатися функцією, щоб знайти (наприклад) найвище значення в списку чисел:
Приклад
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
Спробуйте самі »
Або створіть функцію для підсумовування всіх вхідних значень:
Приклад
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Спробуйте самі »
Якщо функція викликається із занадто великою кількістю аргументів (більше ніж оголошено), ці аргументи можна отримати за допомогою об’єкта аргументів.
Аргументи передаються за значенням
Параметри у виклику функції є аргументами функції.
Аргументи JavaScript передаються через значення: функція дізнається лише значення, а не розташування аргументів.
Якщо функція змінює значення аргументу, вона не змінює вихідне значення параметра.
Зміни в аргументах не видно (не відображено) за межами функції.
Об’єкти передаються за посиланням
У JavaScript посилання на об’єкти є значеннями.
Через це об’єкти поводитимуться так, ніби їх передає посилання:
Якщо функція змінює властивість об’єкта, вона змінює початкове значення.
Зміни властивостей об’єкта видно (відображено) за межами функції.