Како да проверите тип на функција во 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('!');
}