Полный цикл в digital

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

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

function print(message){
    console.log(message);
}
print("Hello JavaScript");
print("Hello METANIT.COM");
print("Function in JavaScript");

Функция print() принимает один параметр - message. Поэтому при вызове функции мы можем передать для него значение, например, некоторую строку:

print("Hello JavaScript");

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

function print(message){
console.log(message);
}
print();

Если функция принимает несколько параметров, то они перечисляются через запятую. При вызове функции с несколькими параметрами значения передаются параметрам по позиции. То есть первое значение передается первому параметру, второе значение - второму и так далее:

function sum(a, b){
const result = a + b;
console.log(result);
}
// 8
sum(2, 6);   
// 9       
sum(4, 5);   
// 120       
sum(109, 11);

Необязательные параметры и значения по умолчанию

Функция может принимать множество параметров, но при этом часть или все параметры могут быть необязательными. Если для параметров не передается значение, то по умолчанию они имеют значение undefined. Однако иногда бывает необходимо, чтобы параметры обязательно имели какие-то значения, например, значения по умолчанию:

function sum(x = 8, y = 5){
const z = x + y;
console.log(z);
}
// 13
sum(); 
// 11     
sum(6);     
// 10
sum(6, 4)

Если параметрам x и y не передаются значения, то они получаются в качестве значений числа 5 и 8 соответствено.

При этом значение параметра по умолчанию может быть производным, представлять выражение:

function sum(x = 8, y = 10 + x){
const z = x + y;
console.log(z);
}
// 26
sum();   
// 22   
sum(6);     
// 10
sum(6, 4)

Массив arguments

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

function sum(){
let result = 0;
for(const n of arguments)
result += n;
console.log(result);
}
// 6
sum(6);            
// 10 
sum(6, 4)       
// 15    
sum(6, 4, 5)

Неопределенное количество параметров

С помощью оператора ... (многоточие) мы можем указать, что с помощью параметра можно передать переменное количество значений:

function display(season, ...temps){
console.log(season);
for(index in temps){
console.log(temps[index]);
}
}
display("Весна", -2, -3, 4, 2, 5);
display("Лето", 20, 23, 31);

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

Весна
-2
-3
4
2
5
Лето
20
23
31

Функции в качестве параметров

Функции могут выступать в качестве параметров других функций:

function sum(x, y){
return x + y;
}
function subtract(x, y){
return x - y;
}
function operation(x, y, func){
const result = func(x, y);
console.log(result);
}
console.log("Sum");
// 16
operation(10, 6, sum);  
console.log("Subtract");
// 4
operation(10, 6, subtract);

Функция operation принимает три параметра: x, y и func. func - представляет функцию, причем на момент определения operation не важно, что это будет за функция. Единственное, что известно, что функция func может принимать два параметра и возвращать значение, которое затем отображается в консоли браузера. Поэтому мы можем определить различные функции (например, функции sum и subtract в данном случае) и передавать их в вызов функции operation.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг