Page 86 - 6108
P. 86
Якщо параметр не переданий при виклику – він вважається рівним
undefined. При оголошенні функції необов'язкові аргументи, як правило,
розміщують в кінці списку.
Для вказівки значення «за замовчуванням», тобто, такого, яке
використовується, якщо аргумент не вказано, використовується два способи:
Можна перевірити, чи рівний аргумент undefined, і якщо так – то
записати в нього значення за замовчуванням.
if (arg === undefined) {
arg = 'значення за замовчуванням';
}
Використовувати оператор ||:
arg = arg || 'Значення за замовчуванням';
Другий спосіб вважає, що аргумент відсутній, якщо передано порожній
рядок, 0, або взагалі будь-яке значення, яке в логічному контексті є false.
Стандарт ES-2015 дозволяє вказувати параметри по замовчуванні через
рівність =:
function showMenu(title = "Без заголовку", width = 100,
height = 200) {
alert(title + ' ' + width + ' ' + height);
}
showMenu("Меню"); // Меню 100 200
Якщо аргументів передано більше, ніж треба то помилки не буде. Але, щоб
отримати такі «зайві» аргументи, потрібно буде прочитати їх зі спеціального
об'єкта arguments. В стандарті ES-2015, щоб отримати масив аргументів,
можна використовувати оператор ... (spred), наприклад:
function showMenu(title, width, height, …rest) {
//тіло функції;
}
showMenu("Меню", 100, 200, 1, 5); // Меню 100 200
5
В rest потрапить масив всіх аргументів, починаючи з четвертого .
Повернення значення
Функція може повернути результат, який буде переданий код який
викликав її. Для повернення значення використовується директива return.
Вона може знаходитися в будь-якому місці функції. Як тільки до неї
доходить управління - функція завершується і значення передається назад.
Викликів return може бути і кілька
function checkAge(age) {
if (age > 18) {
return true;
5 rest – справжній масив, з методами map, forEach і іншими, на відміну від
arguments.