02. Function Parameters

Parameters

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

function sum(a, b) {
  return a + b;
}

Arguments

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

  • Если число переданных аргументов меньше числа объявленных параметров, то недостающие параметры получают значение undefined.

  • Если в функцию было передано большее число аргументов, то лишние просто игнорируются.

sum(2, 2); // 4
sum(2); // sum(2, undefined) => NaN
sum(2, 2, 2); // sum(2, 2) => NaN

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

function myFunc(theObject) {
  theObject.brand = "Toyota";
}

const car = {
  brand: "Honda",
  model: "Accord",
  year: 1998
};

console.log(car.brand); // Honda
myFunc(car);
console.log(car); // Toyota

Last updated