Ինչպես ստուգել ֆունկցիայի տեսակը 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('!');
}