4.1 Параметры функций
Параметры функций в JavaScript позволяют передавать значения в функции для их обработки. Это делает функции более гибкими и адаптивными. В этой теме мы рассмотрим основные аспекты работы с параметрами функций в JavaScript, включая параметры по умолчанию и остаточные параметры.
Параметры указываются в круглых скобках после имени функции. При вызове функции значения этих параметров передаются в соответствующие переменные внутри функции.
Пример:
В функции greet()
определены два параметра: name
и age
. При вызове функции значения Alice
и 30
передаются в эти параметры.
function greet(name, age) {
return `Hello, ${name}! You are ${age} years old.`;
}
console.log(greet('Alice', 30)); // "Hello, Alice! You are 30 years old."
Обработка неопределенных параметров
Если параметр не передался при вызове функции, его значение будет undefined
. Это может привести к ошибкам, если с таким параметром выполняются операции, не поддерживающие undefined
.
Пример:
В функции greet()
проверяется, передан ли параметр name
. Если нет, используется строка Guest
.
function greet(name) {
if (name === undefined) {
return 'Hello, Guest!';
}
return `Hello, ${name}!`;
}
console.log(greet()); // "Hello, Guest!"
console.log(greet('Bob')); // "Hello, Bob!"
4.2 Параметры по умолчанию
Параметры по умолчанию позволяют задать значения, которые будут использоваться, если аргумент не передался при вызове функции или передался как undefined
. Это особенно полезно для создания функций с опциональными параметрами.
Синтаксис:
function name (arg1 = value1, arg2 = value2) {
// function body
}
Пример 1: Простая функция с параметрами по умолчанию
В этом примере функция greet()
имеет параметр name со значением по умолчанию Guest
. Если аргумент не передан, будет использовано значение по умолчанию.
function greet(name = 'Guest') {
return `Hello, ${name}!`;
}
console.log(greet('Alice')); // Выведет: Hello, Alice!
console.log(greet()); // Выведет: Hello, Guest!
Пример 2: Параметры по умолчанию с выражениями
В этом примере параметр tax
по умолчанию рассчитывается как 20% от price
, если не был передан другой аргумент.
function calculatePrice(price, tax = price * 0.2) {
return price + tax;
}
console.log(calculatePrice(100)); // Выведет: 120
console.log(calculatePrice(100, 15)); // Выведет: 115
Пример 3: Параметры по умолчанию зависят от других параметров
В этом примере параметры по умолчанию позволяют создать пользователя с предопределенными ролями и статусами.
function createUser(name, role = 'user', isActive = true) {
return { name, role, isActive };
}
console.log(createUser('Alice')); // Выведет: { name: 'Alice', role: 'user', isActive: true }
console.log(createUser('Bob', 'admin')); // Выведет: { name: 'Bob', role: 'admin', isActive: true }
console.log(createUser('Charlie', 'moderator', false)); // Выведет: { name: 'Charlie', role: 'moderator', isActive: false }
4.3 Остаточные параметры
Остаточные параметры позволяют функции принимать любое количество аргументов и собирать их в массив. Это полезно для создания функций, которые могут работать с произвольным числом аргументов.
Синтаксис:
function name (arg1, arg2, ...argArray) {
// function body
}
Пример 1: Суммирование всех переданных аргументов
В этом примере функция sumAll()
использует остаточные параметры для суммирования всех переданных аргументов.
function sumAll(...numbers) {
return numbers.reduce((sum, num) => sum + num, 0);
}
console.log(sumAll(1, 2, 3)); // Выведет: 6
console.log(sumAll(4, 5, 6, 7, 8)); // Выведет: 30
Пример 2: Функция с фиксированными и остаточными параметрами
В этом примере функция showItems()
принимает фиксированный параметр firstItem
и неопределенное количество остальных аргументов, собранных в массив otherItems
.
function showItems(firstItem, ...otherItems) {
console.log(`Первый элемент: ${firstItem}`);
console.log(`Другие элементы: ${otherItems.join(', ')}`);
}
showItems('apple', 'banana', 'cherry', 'date');
// Выведет:
// Первый элемент: apple
// Другие элементы: banana, cherry, date
Пример 3: Функция с динамическими аргументами
В этом примере функция createMessage()
принимает первый аргумент messageType
и собирает все остальные параметры в массив messages
, чтобы создать сообщение.
function createMessage(messageType, ...messages) {
return `[${messageType.toUpperCase()}]: ${messages.join(' ')}`;
}
console.log(createMessage('info', 'This', 'is', 'an', 'informational', 'message'));
// Выведет: [INFO]: This is an informational message
console.log(createMessage('error', 'An', 'error', 'occurred'));
// Выведет: [ERROR]: An error occurred
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ