В предыдущей статье мы обсуждали хранение значений. Мы уже обсуждали, что только Boolean, number, BigInt, string, object, symbol, null, undefined будет считаться значением, все, кроме этих восьми, не является значением. В этой статье мы обсудим сохранение действий.

Бывают ситуации, когда нам снова и снова приходится выполнять конкретную задачу. В этом случае Javascript дает нам возможность хранить блок кода в форме функции, которую мы можем повторно использовать столько раз, сколько захотим. Итак, приступим к нашему обсуждению. Есть несколько способов определить функцию -

Объявление функции:

Объявление функции состоит из трех вещей:

  1. Имени функции предшествует ключевое слово функции.
  2. Параметры функции. Параметры функции - это значения, необходимые для выполнения определенной задачи. Функция может иметь несколько параметров или не иметь их.

* Параметр по умолчанию: Параметр по умолчанию - это значение параметра по умолчанию. Если параметр не указан, он получит значение по умолчанию вместо неопределенного.

  1. Тело функции: здесь мы пишем блок кода, который можем использовать повторно. В теле функции есть оператор return, который указывает, какое значение вернет функция. Если внутри тела функции нет оператора возврата, он вернет значение undefined. В случае функции высшего порядка функция также может возвращать другую функцию,

* Объявление функции может быть вызвано раньше, чем оно определено.

Syntax:
function functionName(parameter) {
   return value;
}

Пример:

checkEven(4);
function checkEven(n) {   
   return (n % 2 === 0); // Output: true
}

Выражение функции:

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

syntax:
let variableName = function (a, b) {
                     return a + b;
                   }

Пример:

let squareNum = function (x) {
                  return x * x;   //Output: 9          
                };
squareNum(3);

Функция стрелки:

Стрелочная функция - это сокращенная версия функционального выражения. Здесь не нужно писать ключевое слово «функция». В случае функции со стрелкой, состоящей из одной строки, она не содержит оператора «return», и вы также можете удалить круглую скобку, если есть только один параметр. Но в случае функции многострочной стрелки вам нужно написать оператор return со значением, которое вы хотите вернуть, в противном случае он вернет undefined.

Syntax:
   // Single-line
   let variableName = (parameters) => functionBody 
   
   //Multi Line
   var varibleName2 = (parameter1, parameter2,....) =>{ 
      return value;
   }

Пример:

let addOne = n => n + 1 // Output: 3
addOne(2); 
let gradeSystem = (score, total) => {                                                      switch(score <= total) {                                      
   case (score >= 90) : return "A";  
   case (score >= 80 && score < 90) : return "B";                                        
   case (score >= 70 && score < 80) : return "C";  // Output: "C"
   case (score >= 60 && score < 70) : return "D";
   default : return "F";                                    
   }                                   
}; 
gradeSystem(77, 100);

Выражение немедленно вызываемой функции (IIFE):

Выражение немедленно вызываемой функции - это функция Javascript, которая выполняется, как только она определена. Это шаблон проектирования, который также известен как самозаполняющаяся анонимная функция.

Syntax:
  (function() { 
     functionBody
  })();
 OR
( () => {
   functionBody;
}() )

Пример:

(function() { 
   console.log("Hello World!"); 
})();