⊗jsPmFTFENIn 233 of 505 menu

JavaScript-ի ֆունկցիոնալ արտահայտությունների նրբությունները

Function Expression անվանումը տրված է պատահական չէ: Այն իրոք նշանակում է դա - այն, որ նման ֆունկցիաները հանդիսանում են որևէ արտահայտության մաս:

Օրինակ, մենք կարող ենք գումարել ինչ-որ տող և անանուն ֆունկցիա:

let str = 'str' + function() {return 3;}; console.log(str); // կցուցադրի 'strfunction() {return 3;}'

Ինչու՞ ենք մենք տեսնում այսպիսի տարօրինակ արդյունք, և ոչ թե 3 թիվը: Քանի որ երկրորդ գումարելին ֆունկցիայի աշխատանքի արդյունքը չէ, այլ դրա սկզբնական կոդը (քանի որ մենք այդ ֆունկցիան չենք կանչել, այլ պարզապես գրել ենք այն):

Այսինքն՝ ֆունկցիոնալ արտահայտություն անվանումը նշանակում է, որ նման ֆունկցիան մասնակցում է ինչ-որ արտահայտության:

Փոփոխականին վերագրումը նույնպես արտահայտություն է:

let func = function() { console.log('!'); };

Կարելի է նաև, օրինակ, ֆունկցիան փոխանցել որպես պարամետր console.log-ին, և այն կցուցադրի դրա սկզբնական կոդը կոնսոլում - սա նույնպես կհամարվի արտահայտություն:

console.log(function() {return 3;});

Ինչու է դա կարևոր. քանի որ Function Declaration-ի և Function Expression-ի տարբերությունը ամենևին այն չէ, որ առաջին ֆունկցիան ստեղծվում է անվանումով, իսկ երկրորդը ի սկզբանե անուն չունի: Դա այդպես չէ:

Օրինակ. Ահա մենք ունենք ֆունկցիա առանց անվան, բայց միևնույն ժամանակ չի մասնակցում որևէ արտահայտության (այսինքն դրա հետ չեն կատարվում որևէ գործողություններ, պարզ ասած):

/* Տվյալ ֆունկցիան կլինի Function Declaration, բայց շարահյուսական սխալով: */ function() { console.log('!'); }

Նման կոդը ընդհանրապես կտա սխալ: Ինչու՞. քանի որ ֆունկցիան չի մասնակցում որևէ արտահայտության, ապա բրաուզերը այն համարում է Function Declaration, բայց չի գտնում դրա անունը և տալիս է սխալ:

Սխալը վերացնելու համար անհրաժեշտ է ֆունկցիան դարձնել ինչ-որ արտահայտության մաս: Օրինակ, գրենք դրա դիմաց + գործողությունը:

+function() { // նման կոդը ճիշտ է console.log('!'); };

Ինչպես է դա աշխատում. + գործողությունն ինքնին ոչինչ չի անում, դա նույնն է, ինչ 3 թվի փոխարեն գրել +3 թիվը - թույլատրելի է, բայց ոչինչ չի փոխում:

Բայց ֆունկցիայի դեպքում՝ փոխում է: Այժմ մեր ֆունկցիան արդեն ոչ միայն գրված է, այլ մասնակցում է արտահայտությանը: Ուստի սխալ այլևս չի լինի: Ֆունկցիայի կատարման արդյունքը նույնպես չի լինի, քանի որ մենք այն պարզապես գրել ենք, բայց չենք կանչել:

+-ի փոխարեն կարելի է գրել ցանկացած բան: Օրինակ:

-function() { // նման կոդը ճիշտ է console.log('!'); }; !function() { // նման կոդը ճիշտ է console.log('!'); };

Կարելի է նաև վերցնել մեր ֆունկցիան կլոր փակագծերի մեջ, այս դեպքում այն նույնպես կդառնա ֆունկցիոնալ արտահայտություն:

(function() { // նման կոդը ճիշտ է console.log('!'); });

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

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

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

let func = function() { console.log('!'); }

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

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

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

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

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

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

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

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

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

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

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

console.log( function() { console.log('!'); } );
Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել