оператор functions в JavaScript — это синтаксическое представление функции или способ ее создания.

function print(){
   console.log("hello");
}

выражение функции , когда функция присваивается как значение переменной .

const sum =function add(a,b){
   return a+b;
}

основное различие между ними заключается в подъеме .

//here we are calling funtion before declarations
print()// will console the proper output
sum(1,2) // will generate a TypeError that sum is not defined


function print(){
   console.log("hello");
}

const sum =function (a,b){
   return a+b;
}

Как вы можете видеть, ошибка будет выдана в случае «sum», хотя это и функциональное выражение, но sum будет рассматриваться как обычная переменная, и сначала будет присвоено значение undefined, пока строка не будет выполнена, но в случае «print» на этапе создания памяти функция назначается «print».

объявление функции совпадает с оператором функции

Анонимные функции

Функции без названия являются анонимными функциями.

function (){
  console.log("anonymous function")
}

приведенный выше код вызовет синтаксическую ошибку при выполнении: «Операции функций требуют имени функции», поскольку он записывается как оператор функции, он должен иметь имя. Анонимная функция обычно используется как выражение функции или при передаче функции в качестве функции обратного вызова.

Выражение именованной функции

Выражение функции, в котором функция записывается с именем, называется Выражение именованной функции

// function expression using anonymous function
const sum = function (a,b){
   return a+b;
}
// named function expression
const sum = function add(a,b){
   return a+b;
}

Примечание. В выражении именованной функции из приведенного выше примера, если add() вызывается отдельно, будет выдана ошибка ссылки «добавить не определено», потому что, поскольку теперь оно присваивается как значение переменной, не выделяется память. будет сделано заранее для этой функции в глобальной области видимости.

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

Как правило, это более чистый способ создания функций JavaScript, и он похож на выражение функции. В его синтаксисе не используется ключевое слово function. Для многострочных операторов используются фигурные скобки. Оператор функции стрелки может неявно возвращать значения, это означает, что если это однострочный возврат, он не нужен.

const sum =(a,b)=>{
   a=a*10
   return a+b;
};
const sum =(a,b)=>a+b;

Функции первого класса ИЛИ Граждане первого класса

Возможность использовать функции в качестве аргумента в другой функции или возвращать значение, известное как Функция первого класса/Граждане первого класса .

// function is returned as a value
const test=function (){
   return function a (){
      console.log("function a");
    }
}

// function is passed as an argument
function add(){
   return a+b;
}

const sum=function (add,a,b){
   return add(a,b)
}
console.log("sum",sum(1,2));

Если вы хотите быть в курсе, подписывайтесь, хлопайте, ставьте лайки и делитесь новостями. Здоровья!