function CalcSum(a = 0, b = 0, c = 5){
var d = a + b + c;
return d;
}
var x = 2;
var y = 3;
var z = 4;
var m = CalcSum(x, y, z);
console.log(m); // результат '9'
Разберём пример сверху вниз. На второй строчке задаётся функция CalcSum. Название у функции может быть любое. Оно может содержать только латинские буквы и цифры. Обычно названия функций делают такими, чтобы можно было догадаться, что они делают: CalcSum = Calculation (вычисление) + Sum (сумма).
Последняя строчка в функции содержит слово return (переводится как "возврат"). Благодаря этой строчке в результате выполнения функции CalcSum возвращается значение переменной d. И в нашем случае это значение попадает в переменную m.
Функции CalcSum можно передать три аргумента. Если не передать все три, а к примеру, только один (первый), то для второго аргумента будет использовано значение "0", а для третьего "5". Эти значения по умолчанию зависят от того, что стоит в скобках при задании функции CalcSum(a = 0, b = 0, c = 5). Значениям по умолчанию могут быть не только цифры, но и строки.
Функции CalcSum(a = 0, b = 0, c = 5) из примера можно передать три и менее аргументов. К примеру так: CalcSum(8, 1) или CalcSum(4). Но если передать больше трёх аргументов CalcSum(7, 2, 6, 4), то JavaScript не выдаст ошибку
Функции могут не только возвращать значения, но и писать его консоль. К примеру:
function CalcSum(a = 0, b = 0, c = 5){
var d = a + b + c;
console.log('Результат: ' . d);
return d;
}
var m = CalcSum(2, 3, 4);
При вызове этой функции в консоль будет выведена цифра "9". При этом "console.log( )" стоит внутри функции, а не вне.
В функции может быть несколько return. Но как только исполнится первый, то процесс выйдет из функции и остальной код внутри функции не будет выполнен. Иногда это делается в целях экономии ресурсов, к примеру, не надо делать ресурсоёмкие вычисления, если параметры попадают в какой-то диапазон. Попробуем продемонстрировать возможность сделать несколько return в одной функции :
function CalcSum(a = 0, b = 0, c = 5){
var d = a + b + c;
if(d < 10){
return 0;
}else if(10 < d && d < 20){
return d + 50;
}else if(100 < d){
return 100;
}
return 21;
}
Если функция небольшая и от обрыва её выполнения не получится большого прироста производительности, то можно не делать несколько return. В таком случае последнему return передают результат-переменную. Перепишем предыдущий пример для такой логики:
function CalcSum(a = 0, b = 0, c = 5){
var d = a + b + c;
if(d v 10){
d = 0;
}else if(10 < d && d < 20){
d += 50;
}else if(100 < d){
d = 100;
}
return d;
}