Как да проверим типа на функция в JavaScript

В задачите по-долу ще трябва да определите дали функцията е дефинирана като Function Declaration или Function Expression.

В прости случаи това не е трудно да се направи визуално. Но как да проверите, че сте го направили правилно? Използвайте разликата между Function Declaration и Function Expression: първите могат да бъдат извикани преди тяхната дефиниция, а вторите - не могат.

Нека имаме следната функция:

javascriptlet test = function() {
  console.log('!');
}

Нека се обърнем към тази функция преди нейната дефиниция:

javascripttest(); // ще изведе грешка в конзолата, следователно Function Expression

let test = function() {
  console.log('!');
}

Ето още един пример:

javascriptfunc(); // ще изведе '!', следователно Function Declaration

function func() {
  console.log('!');
}

Нека поставим плюс пред нашата функция:

javascriptfunc(); // ще изведе грешка в конзолата, следователно Function Expression

+function func() {
  console.log('!');
}

Тъй като функцията по-горе е Function Expression и не е присвоена на никаква променлива, тя не може да бъде извикана по никакъв начин, тъй като по име func тя няма да бъде достъпна.

Задание 1

Определете дали представената функция е Function Declaration или Function Expression:

javascriptlet test = function func() {
  console.log('!');
}
Задание 2

Определете дали представената функция е Function Declaration или Function Expression:

javascriptconsole.log(
  function func() {
    console.log('!');
  }
);
Задание 3

Определете дали представената функция е Function Declaration или Function Expression:

javascript+function func() {
  console.log('!');
}
Задание 4

Определете дали представената функция е Function Declaration или Function Expression:

javascriptfunction func() {
  console.log('!');
}