⊗jsPmFTFENIn 233 of 505 menu

Nuancat e Shprehjeve Funksionale në JavaScript

Emri Function Expression nuk është dhënë kot. Ai vërtetë do të thotë këtë - që funksione të tilla janë pjesë e ndonjë shprehjeje.

Për shembull, ne mund të mbledhim ndonjë varg dhe një funksion pa emër:

let str = 'str' + function() {return 3;}; console.log(str); // do të shfaqë 'strfunction() {return 3;}'

Pse e shohim një rezultat kaq të çuditshëm, dhe jo numrin 3? Sepse përbërësi i dytë - nuk është rezultat i punës së funksionit, por kodi burimor i tij (ne nuk e kemi thirrur këtë funksion, thjesht e kemi shkruar).

Kjo do të thotë se emri shprehje funksionale tregon se një funksion i tillë merr pjesë në ndonjë shprehje.

Caktimi në një ndryshore është gjithashtu shprehje:

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

Mund të, për shembull, të kalojmë funksionin si parametër në console.log dhe ai do të shfaqë kodin burimor të tij në konsolë - kjo gjithashtu do të konsiderohet shprehje:

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

Pse kjo është e rëndësishme: sepse ndryshimi midis Function Declaration dhe Function Expression nuk është aspak në atë që funksioni i parë krijohet me emër, ndërsa i dyti fillimisht nuk ka emër. Nuk është kështu.

Shembull. Këtu kemi një funksion pa emër, por që nuk merr pjesë në asnjë shprehje (d.m.th. nuk kryhen asnjë veprim me të, për ta thënë thjesht):

/* Ky funksion do të jetë Function Declaration, por me gabim sintaksor: */ function() { console.log('!'); }

Një kod i tillë do të japë gabim! Pse: meqenëse funksioni nuk merr pjesë në asnjë shprehje, shfletuesi e konsideron atë si Function Declaration, por nuk gjen emrin e tij dhe jep një gabim.

Që gabimi të zhduket, duhet ta bëjmë funksionin pjesë të ndonjë shprehjeje. Për shembull, të shkruajmë përpara tij operacionin +:

+function() { // kod i tillë është i saktë console.log('!'); };

Si funksionon kjo: vetë operacioni + nuk bën asgjë, kjo është njësoj sikur të shkruash në vend të numrit 3 numrin +3 - është e lejueshme, por nuk ndryshon asgjë.

Por në rastin e funksionit - ndryshon. Tani funksioni ynë nuk është thjesht i shkruar, por merr pjesë në një shprehje. Prandaj tani nuk do të ketë gabim. As nuk do të ketë rezultat ekzekutimi të funksionit, ne thjesht e kemi shkruar atë, por nuk e kemi thirrur.

Në vend të + mund të shkruhet çdo gjë. Për shembull:

-function() { // kod i tillë është i saktë console.log('!'); }; !function() { // kod i tillë është i saktë console.log('!'); };

Mund gjithashtu ta vendosim funksionin tonë në kllapa të rrumbullakëta, në këtë rast ai gjithashtu do të bëhet shprehje funksionale:

(function() { // kod i tillë është i saktë console.log('!'); });

Përcaktoni nëse funksioni i paraqitur është Function Declaration apo Function Expression:

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

Përcaktoni nëse funksioni i paraqitur është Function Declaration apo Function Expression:

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

Përcaktoni nëse funksioni i paraqitur është Function Declaration apo Function Expression:

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

Përcaktoni nëse funksioni i paraqitur është Function Declaration apo Function Expression:

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

Përcaktoni nëse funksioni i paraqitur është Function Declaration apo Function Expression:

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

Përcaktoni nëse funksioni i paraqitur është Function Declaration apo Function Expression:

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

Përcaktoni nëse funksioni i paraqitur është Function Declaration apo Function Expression:

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

Përcaktoni nëse funksioni i paraqitur është Function Declaration apo Function Expression:

console.log( function() { console.log('!'); } );
Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo