Параметры по умолчанию в JavaScript
В этой статье вы узнаете, как работать с параметрами по умолчанию в JavaScript ES6.
Аргумент vs. параметров
Обычно мы используем термин аргумент и параметр взаимозаменяемо. Однако по определению параметры - это то, что мы указываем в объявлении функции, тогда как аргументы - это то, что мы передаем функции при вызове.
Рассмотрим следующую функцию add_nums().
function add_nums(x,y) {
return x + y;
}
add_nums(330, 120);
В этом примере x и y являются параметрами функции, а значения, которые мы передали функции add_nums() (330 и 120), являются аргументами.
Установка параметров JavaScript по умолчанию для функции.
В JavaScript параметр имеет значение по умолчанию undefined. Это означает, что если вы не передадите аргументы функции, его параметры будут иметь значения по умолчанию undefined.
Пример.
function foo(bar) {
console.log(bar);
}
foo(); // undefined
Функция foo() принимает параметр bar. Поскольку мы не передавали никаких аргументов при вызове функции foo(), значение аргумента bar не определено.
Предположим, вы хотите дать параметру bar значение по умолчанию 20. Типичная стратегия для достижения этого - проверить значение параметра и присвоить значение по умолчанию, если оно не определено.
function foo(bar) {
bar = typeof bar !== 'undefined' ? bar : 20;
console.log(bar);
}
foo(); // 20
В этом примере мы не присвоили значение параметру bar в вызове функции, поэтому его значение не определено. Однако внутри функции мы переопределили переменную bar значением 20, и так как ее значение не определено, скрипт выводит 20 в консоли.
В версии ES6 появился новый способ, обеспечивающий более простой способ установки значений по умолчанию для параметров функции, как показано в следующем примере:
function function_name(param1=value1,param2=value2,..) {}
Как ясно показано в приведенном выше примере, мы используем оператор присваивания (=) и значение по умолчанию после имени параметра.
Следующий пример:
function foo(bar = 10) {
console.log(bar);
}
foo(); // 10
foo(undefined); // 10
foo(20); //20
В первом вызове функции мы не передавали никаких аргументов функции foo(), поэтому параметр bar имеет значение по умолчанию 10. Во втором вызове функции мы передали undefined функции foo (), поэтому параметр bar также имеет значение по умолчанию 10. В третьем вызове мы передали значение по умолчанию 20 в функцию foo(), поэтому параметр bar принимает значение 20 в качестве значения.
На этом все, а в следующей статье мы продолжим обсуждать тему параметров по умолчанию в JavaScript.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.