Elementor Header #8

36. Параметры по умолчанию

Параметры по умолчанию в JavaScript позволяют задавать начальные значения для параметров функций. Если аргумент не передан или равен undefined, параметр по умолчанию будет использоваться вместо него. Это помогает избежать ошибок, связанных с отсутствием аргументов, и делает код более гибким и читаемым.

Основы параметров по умолчанию

В ES6 была введена возможность задавать параметры по умолчанию прямо в определении функции. Рассмотрим пример:

				
					function greet(name = 'Гость') {
  return `Привет, ${name}!`;
}

console.log(greet()); // Привет, Гость!
console.log(greet('Анна')); // Привет, Анна!

				
			

В этом примере, если функция greet вызывается без аргумента, параметр name будет иметь значение 'Гость'.

Пример использования

Функция с параметрами по умолчанию

				
					function calculateArea(width = 10, height = 5) {
  return width * height;
}

console.log(calculateArea()); // 50
console.log(calculateArea(20)); // 100
console.log(calculateArea(20, 15)); // 300

				
			

Комбинирование параметров по умолчанию и обязательных параметров

				
					function createUser(name, age = 18) {
  return {
    name: name,
    age: age
  };
}

console.log(createUser('Иван')); // { name: 'Иван', age: 18 }
console.log(createUser('Мария', 25)); // { name: 'Мария', age: 25 }

				
			

Параметры по умолчанию и undefined

Если параметр передан как undefined, будет использовано значение по умолчанию. Но если передан null, параметр по умолчанию не будет использоваться.

				
					function printMessage(message = 'Сообщение не указано') {
  console.log(message);
}

printMessage(undefined); // Сообщение не указано
printMessage(null); // null

				
			

Динамическое значение параметра по умолчанию

Параметры по умолчанию могут быть результатом вызова других функций или выражений.

				
					function getDefaultValue() {
  return 42;
}

function calculate(value = getDefaultValue()) {
  return value * 2;
}

console.log(calculate()); // 84
console.log(calculate(10)); // 20

				
			

Параметры по умолчанию в стрелочных функциях

Параметры по умолчанию работают и в стрелочных функциях.

				
					const multiply = (a = 1, b = 1) => a * b;

console.log(multiply()); // 1
console.log(multiply(5)); // 5
console.log(multiply(5, 2)); // 10

				
			

Распространенные ошибки

Неправильное использование параметров по умолчанию

Параметры по умолчанию должны идти после обязательных параметров.

				
					function example(a = 1, b) {
  return a + b;
}

console.log(example(5)); // Ошибка, b не определен

				
			

Правильный способ:

				
					function example(a, b = 1) {
  return a + b;
}

console.log(example(5)); // 6

				
			

Значение по умолчанию как объект или массив

При использовании объектов или массивов в качестве значений по умолчанию следует помнить, что они будут общими для всех вызовов функции.

				
					function addItem(item, list = []) {
  list.push(item);
  return list;
}

console.log(addItem('яблоко')); // ['яблоко']
console.log(addItem('банан')); // ['яблоко', 'банан']

				
			

Заключение

Параметры по умолчанию делают функции более гибкими и устойчивыми к отсутствию аргументов. Они помогают избежать ошибок и упрощают код, уменьшая необходимость в дополнительных проверках на наличие аргументов.

Тестовое задание

  1. Напишите функцию greet, которая принимает два параметра: name и greeting, с параметром по умолчанию для greeting равным 'Привет'. Функция должна возвращать строку, состоящую из приветствия и имени.

  2. Напишите функцию sum, которая принимает три параметра: a, b и c, с параметрами по умолчанию для b и c равными 0. Функция должна возвращать сумму этих трех чисел.

Пример решения:

				
					// Задание 1
function greet(name, greeting = 'Привет') {
  return `${greeting}, ${name}!`;
}

console.log(greet('Анна')); // Привет, Анна!
console.log(greet('Анна', 'Здравствуйте')); // Здравствуйте, Анна!

// Задание 2
function sum(a, b = 0, c = 0) {
  return a + b + c;
}

console.log(sum(5)); // 5
console.log(sum(5, 10)); // 15
console.log(sum(5, 10, 15)); // 30

				
			

Этот урок поможет вам лучше понять, как использовать параметры по умолчанию в JavaScript, и научит избегать распространенных ошибок при их использовании.

logo