Чӣ тавр навъи функсияро дар 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('!');
}