⊗jsPmFTFENIn 233 of 505 menu

Nianse funkcionalnih izrazov v JavaScript

Ime Function Expression ni dano brez razloga. Resnično pomeni to - da so takšne funkcije del kakšnega izraza.

Na primer, lahko seštejemo nek niz in brezimno funkcijo:

let str = 'str' + function() {return 3;}; console.log(str); // izpiše 'strfunction() {return 3;}'

Zakaj vidimo tako čuden rezultat, in ne številko 3? Ker drugi člen - ni rezultat delovanja funkcije, ampak njena izvorna koda (saj te funkcije nismo poklicali, ampak smo jo samo napisali).

To pomeni, da ime funkcionalni izraz označuje, da taka funkcija sodeluje v kakšnem izrazu.

Tudi dodelitev spremenljivki je izraz:

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

Lahko tudi, na primer, posredujemo funkcijo kot parameter v console.log in ta bo izpisal njeno izvorno kodo v konzolo - tudi to bo veljalo za izraz:

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

Zakaj je to pomembno: ker razlika med Function Declaration in Function Expression sploh ni v tem, da je prva funkcija ustvarjena z imenom, druga pa sprva nima imena. To ni res.

Primer. Tukaj imamo funkcijo brez imena, vendar ne sodeluje v nobenem izrazu (to pomeni, da z njo ne izvajamo nobenih dejanj, preprosto povedano):

/* Ta funkcija bo Function Declaration, vendar s sintaktično napako: */ function() { console.log('!'); }

Takšna koda bo povzročila napako! Zakaj: ker funkcija ne sodeluje v nobenem izrazu, jo brskalnik obravnava kot Function Declaration, vendar ne najde njenega imena in povzroči napako.

Da napaka izgine, moramo funkcijo spremeniti v del kakšnega izraza. Na primer, napišimo pred njo operacijo +:

+function() { // takšna koda je pravilna console.log('!'); };

Kako to deluje: operacija + sama po sebi nič ne naredi, to je enako kot če bi namesto številke 3 napisali +3 - dopustno, vendar nič ne spremeni.

Toda v primeru funkcije - spremeni. Zdaj naša funkcija ni več samo napisana, ampak sodeluje v izrazu. Zato napake ne bo več. Rezultata izvajanja funkcije tudi ne bo, saj smo jo samo napisali, vendar je nismo poklicali.

Namesto + lahko napišemo karkoli. Na primer:

-function() { // takšna koda je pravilna console.log('!'); }; !function() { // takšna koda je pravilna console.log('!'); };

Lahko tudi našo funkcijo damo v okrogle oklepaje, v tem primeru bo prav tako postala funkcionalni izraz:

(function() { // takšna koda je pravilna console.log('!'); });

Določite, ali je predstavljena funkcija Function Declaration ali Function Expression:

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

Določite, ali je predstavljena funkcija Function Declaration ali Function Expression:

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

Določite, ali je predstavljena funkcija Function Declaration ali Function Expression:

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

Določite, ali je predstavljena funkcija Function Declaration ali Function Expression:

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

Določite, ali je predstavljena funkcija Function Declaration ali Function Expression:

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

Določite, ali je predstavljena funkcija Function Declaration ali Function Expression:

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

Določite, ali je predstavljena funkcija Function Declaration ali Function Expression:

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

Določite, ali je predstavljena funkcija Function Declaration ali Function Expression:

console.log( function() { console.log('!'); } );
Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni