Default parameters в JavaScript
- Что такое default parameters
- Синтаксис
- Если аргумент не передали
- undefined и null
- Несколько параметров по умолчанию
- Выражения в параметрах
- Итого
Default parameters - это параметры функции со значением по умолчанию.
Они нужны на случай, если при вызове функции аргумент не передали.
function greetUser(name = 'Гость') {
console.log('Привет, ' + name + '!');
}
greetUser('Анна');
greetUser();
Результат:
Привет, Анна!
Привет, Гость!
Во втором вызове аргумент не передали, поэтому JavaScript взял значение по умолчанию.
Что такое default parameters
Обычный параметр получает значение из аргумента, который передали при вызове функции.
function showName(name) {
console.log(name);
}
showName('Игорь');
Если аргумент не передать, в параметре будет undefined.
function showName(name) {
console.log(name);
}
showName();
Результат:
undefined
Параметр по умолчанию позволяет заранее указать запасное значение.
function showName(name = 'Без имени') {
console.log(name);
}
showName();
Результат:
Без имени
Синтаксис
Значение по умолчанию записывается прямо в списке параметров через знак =.
function functionName(parameter = defaultValue) {
// код функции
}
Пример:
function getPrice(price, discount = 0) {
return price - price * discount;
}
console.log(getPrice(1000, 0.1));
console.log(getPrice(1000));
Результат:
900
1000
Если скидку передали, функция использует ее. Если не передали - берет 0.
Если аргумент не передали
Значение по умолчанию срабатывает, когда аргумент отсутствует.
function createUser(name, role = 'user') {
return name + ': ' + role;
}
console.log(createUser('Анна', 'admin'));
console.log(createUser('Игорь'));
Результат:
Анна: admin
Игорь: user
Во втором вызове второй аргумент не передали, поэтому параметр role получил значение ‘user’.
undefined и null
Параметр по умолчанию также срабатывает, если явно передать undefined.
function showStatus(status = 'active') {
console.log(status);
}
showStatus(undefined);
Результат:
active
Но если передать null, значение по умолчанию не подставится.
function showStatus(status = 'active') {
console.log(status);
}
showStatus(null);
Результат:
null
null - это уже переданное значение. JavaScript не заменяет его значением по умолчанию.
Несколько параметров по умолчанию
У функции может быть несколько параметров со значениями по умолчанию.
function createCard(title = 'Без заголовка', text = 'Описание отсутствует') {
return title + ' - ' + text;
}
console.log(createCard('JavaScript', 'Урок про функции'));
console.log(createCard());
Результат:
JavaScript - Урок про функции
Без заголовка - Описание отсутствует
Так функция продолжает работать даже без аргументов.
Выражения в параметрах
Значением по умолчанию может быть не только строка или число, но и выражение.
function getTotal(price, count = 1) {
return price * count;
}
console.log(getTotal(500, 3));
console.log(getTotal(500));
Результат:
1500
500
Параметр по умолчанию может зависеть от предыдущего параметра.
function createMessage(name, text = 'Привет, ' + name + '!') {
return text;
}
console.log(createMessage('Анна'));
Результат:
Привет, Анна!
Значение для text строится на основе параметра name, который объявлен раньше.
Итого
1. Default parameters задают значение параметра по умолчанию.
2. Они срабатывают, если аргумент не передали или передали undefined.
3. Если передать null, значение по умолчанию не используется.
4. Значение по умолчанию записывается через = прямо в параметрах функции.
5. Параметры по умолчанию помогают писать функции, которые спокойно работают без части аргументов.