Книга: Выразительный JavaScript
Необязательные аргументы
Необязательные аргументы
Следующий код вполне разрешён и выполняется без проблем:
alert("Здрасьте", "Добрый вечер", "Всем привет!");
Официально функция принимает один аргумент. Однако, при таком вызове она не жалуется. Она игнорирует остальные аргументы и показывает «Здрасьте».
JavaScript очень лоялен по поводу количества аргументов, передаваемых функции. Если вы передадите слишком много, лишние будут проигнорированы. Слишком мало – отсутствующим будет назначено значение undefined
.
Минус этого подхода в том, что возможно – и даже вероятно – передать функции неправильное количество аргументов, и вам никто на это не пожалуется.
Плюс в том, что вы можете создавать функции, принимающие необязательные аргументы. К примеру, в следующей версии функции power её можно вызывать как с двумя, так и с одним аргументом. В последнем случае экспонента будет равна двум, и функция работает как квадрат.
function power(base, exponent) {
if (exponent == undefined)
exponent = 2;
var result = 1;
for (var count = 0; count < exponent; count++)
result *= base;
return result;
}
console.log(power(4));
// ? 16
console.log(power(4, 3));
// ? 64
В следующей главе мы увидим, как в теле функции можно узнать точное число переданных ей аргументов. Это полезно, т. к. позволяет создавать функцию, принимающую любое количество аргументов. К примеру, console.log
использует это свойство, и выводит все переданные ей аргументы:
console.log("R", 2, "D", 2);
// ? R 2 D 2
- Именованные аргументы
- 8.3. Аргументы и параметры функций
- 8.3.1. Необязательные аргументы
- Аргументы произвольной длины
- Аргументы функции в Python
- Фактические аргументы
- Сердечные аргументы
- Глава 2 Аргументы, опции и переменные окружения
- Аргументы программы
- Обязательные аргументы функции:
- Вызов функции с аргументом: фактические аргументы
- АРГУМЕНТЫ КОМАНДНОЙ СТРОКИ