Функции в 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, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: