Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Параметры

Параметры делают функцию универсальной: одна и та же функция calculatePrice посчитает цену любого товара, если передать ей нужные данные. Напомним термины: параметр — переменная в объявлении функции, аргумент — значение, которое передают при вызове.

Несколько параметров

Параметры перечисляют через запятую. Аргументы при вызове тоже пишут через запятую:

function add(a, b) {
  return a + b;
}
 
console.log(add(2, 3)); // 5

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

Порядок важен

Аргументы попадают в параметры по порядку: первый — в первый, второй — во второй. Имена переменных при вызове роли не играют:

function describe(name, age) {
  return `${name}, ${age} лет`;
}
 
console.log(describe('Анна', 25)); // Анна, 25 лет
console.log(describe(25, 'Анна')); // 25, Анна лет

Если перепутать порядок, JavaScript не сообщит об ошибке — просто получится неверный результат.

Недостающие аргументы

Если аргумент не передать, параметр получит значение undefined. Лишние аргументы, наоборот, просто игнорируются:

function greet(name) {
  return `Привет, ${name}!`;
}
 
console.log(greet());               // Привет, undefined!
console.log(greet('Анна', 'Олег')); // Привет, Анна!

Значения по умолчанию

Параметру можно задать значение по умолчанию через =. Оно используется, когда аргумент не передан:

function greet(name = 'гость') {
  return `Привет, ${name}!`;
}
 
console.log(greet());       // Привет, гость!
console.log(greet('Анна')); // Привет, Анна!

Значение по умолчанию срабатывает и тогда, когда явно передали undefined. А вот null, 0 и пустая строка считаются обычными аргументами.

Параметр — это копия значения

Параметр — новая переменная внутри функции. Если изменить её, переменная снаружи, которую передали в качестве аргумента, не изменится:

function addBonus(score) {
  score += 10;
  return score;
}
 
const myScore = 50;
 
console.log(addBonus(myScore)); // 60
console.log(myScore);           // 50

Так работают числа, строки и другие простые значения. С массивами и объектами есть особенность — о ней расскажем в соответствующих главах.

Частая ошибка

Параметры со значениями по умолчанию ставят в конец списка. Если такой параметр стоит первым, пропустить его нельзя — аргумент всё равно займёт первое место:

function price(currency = '$', amount) {
  return `${amount} ${currency}`;
}
 
console.log(price(100)); // undefined 100

Правильный порядок — сначала обязательные параметры, потом необязательные: function price(amount, currency = '$').

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.