Ֆունկցիայի ձախ արտահայտությունը JavaScript-ում
Դիտարկենք հետևյալ կոդը.
+function func() {
console.log('!');
}
Ինչպես արդեն գիտեք, այս ֆունկցիան ֆունկցիոնալ արտահայտություն է, չնայած որ այն ունի անուն (մենք արդեն պարզել ենք, որ անունի առկայությունը ընդհանրապես չի հանդիսանում չափանիշ): Հանենք այս գումարածը - և կստանանք Function Declaration.
function func() {
console.log('!');
}
Եկեք տողի սկզբում դնենք + -
այն նորից կդառնա Function Expression.
+
function func() {
console.log('!');
}
Իսկ այժմ գումարածից հետո դնենք 1
թիվը և ստորակետ - մեր ֆունկցիան կդառնա Function
Declaration.
+1;
function func() {
console.log('!');
}
Ինչու է այդպես. որովհետև առաջին տողում գրված է մեկ ավարտված հրաման, որը փակված է ստորակետով։ Ուստի այս հրամանը ոչ մի կերպ չի ազդում մեր ֆունկցիայի վրա։
Իրականում ստորակետը կարելի է հեռացնել, քանի որ JavaScript-ում այն պարտադիր չէ - ֆունկցիան ամեն դեպքում կմնա Function Declaration.
+1
function func() {
console.log('!');
}
Բայց եթե 1-ից հետո ավելացնենք ևս մեկ
գումարած, ապա ֆունկցիան կդառնա Function Expression.
+1+
function func() {
console.log('!');
}
Ինչու է այդպես. որովհետև առաջին տողում կա չավարտված արտահայտություն - դրված է գումարած և դրանից հետո ոչինչ։ Ուստի JavaScript-ի ինտերպրետատորը համարում է, որ այդ գումարածը վերաբերում է ներքևի տողին, այսինքն՝ մեր ֆունկցիային։
Եթե առաջին տողում դրված է ավարտված արտահայտություն, ապա JavaScript-ը ավտոմատ կերպով դնում է դրան ստորակետ և այս արտահայտությունը ոչ մի կերպ չի ազդում մեր ֆունկցիայի վրա։
Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.
-
function func() {
console.log('!');
}
Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.
-1;
function func() {
console.log('!');
}
Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.
-1
function func() {
console.log('!');
}
Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.
1
function func() {
console.log('!');
}
Որոշեք՝ արդյոք ներկայացված ֆունկցիան Function Declaration է, թե Function Expression.
-1-
function func() {
console.log('!');
}