Функции в JavaScript

В программировании часто можно заметить одинаковые куски кода, которые дублируются несколько раз. Если заменить эти куски кода на одну функцию функцию, то код станет легче читать, можно будет быстрее модифицировать, а также эффективнее искать ошибки. Давайте попробуем написать собственную функцию на языке JavaScript. Сделаем функцию, которая будет складывать три переданных в неё числа и выдавать результат:
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 < 10){
      d = 0; 
   }else if(10 < d && d < 20){
      d += 50; 
   }else if(100 < d){
      d = 100;
   }
   return d; 
}
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: