Ֆունկցիայի ձախ արտահայտությունը JavaScript-ում

Դիտարկենք հետևյալ կոդը.

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

Ինչպես արդեն գիտեք, այս ֆունկցիան ֆունկցիոնալ արտահայտություն է, չնայած որ այն ունի անուն (մենք արդեն պարզել ենք, որ անունի առկայությունը ընդհանրապես չի հանդիսանում չափանիշ): Հանենք այս գումարածը - և կստանանք Function Declaration.

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

Եկեք տողի սկզբում դնենք + - այն նորից կդառնա Function Expression.

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

Իսկ այժմ գումարածից հետո դնենք 1 թիվը և ստորակետ - մեր ֆունկցիան կդառնա Function Declaration.

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

Ինչու է այդպես. որովհետև առաջին տողում գրված է մեկ ավարտված հրաման, որը փակված է ստորակետով։ Ուստի այս հրամանը ոչ մի կերպ չի ազդում մեր ֆունկցիայի վրա։

Իրականում ստորակետը կարելի է հեռացնել, քանի որ JavaScript-ում այն պարտադիր չէ - ֆունկցիան ամեն դեպքում կմնա Function Declaration.

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

Բայց եթե 1-ից հետո ավելացնենք ևս մեկ գումարած, ապա ֆունկցիան կդառնա Function Expression.

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

Ինչու է այդպես. որովհետև առաջին տողում կա չավարտված արտահայտություն - դրված է գումարած և դրանից հետո ոչինչ։ Ուստի JavaScript-ի ինտերպրետատորը համարում է, որ այդ գումարածը վերաբերում է ներքևի տողին, այսինքն՝ մեր ֆունկցիային։

Եթե առաջին տողում դրված է ավարտված արտահայտություն, ապա JavaScript-ը ավտոմատ կերպով դնում է դրան ստորակետ և այս արտահայտությունը ոչ մի կերպ չի ազդում մեր ֆունկցիայի վրա։

Задание 1

Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.

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

Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.

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

Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.

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

Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.

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

Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.

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