Синтаксис JavaScript Справочник JavaScript Коды клавиш Строгий режим

JavaScript: Параметры и аргументы функции

Параметры функции играют роль локальных переменных в теле функции. При указании параметров функции ключевое слово var использовать не нужно, JavaScript объявляет их в качестве локальных переменные автоматически. Параметров может быть указано любое количество:

function foo(a, b, c) { ... }   // a, b, c – параметры функции

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

function foo(a, b) {
  var sum = a + b;
  alert(sum);
}

foo(5, 7);   // 12

Когда при вызове функции ей передаётся список аргументов, эти аргументы присваиваются параметрам функции в том порядке, в каком они указаны: первый аргумент присваивается первому параметру, второй аргумент – второму параметру и т. д.

Если число аргументов отличается от числа параметров, то никакой ошибки не происходит. В JavaScript подобная ситуация разрешается следующим образом:

Все функции имеют два неявных параметра: arguments и this. Под словом неявный подразумевается, что эти параметры не перечисляются явно в объявлении функции. Эти параметры также неявно инициализируются при вызове функции. К ним можно обращаться в самой функции так же, как и к любым другим явно установленным параметрам.

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

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

function foo (a = 1, b = 2, c = 5 + 25) {
  console.log(a, b, c);
}

foo(10);  // 10 2 30

Передача значения undefined в качестве аргумента воспринимается как отсутствие аргумента:

function foo (a = 1, b = 2, c = 3) {
  console.log(a, b, c);
}

foo(10, undefined, 20);  // 10 2 20
    
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011-2016 © puzzleweb.ru

Реклама на сайте | Обратная связь