⊗jsPmFTFENIn 233 of 505 menu

Funkcionālo izteiksmju nianses JavaScript

Nosaukums Function Expression nav dots velti. Tas tiešām nozīmē to - ka šādas funkcijas ir kādas izteiksmes daļa.

Piemēram, mēs varam saskaitīt kādu virkni un bezvārda funkciju:

let str = 'str' + function() {return 3;}; console.log(str); // izvadīs 'strfunction() {return 3;}'

Kāpēc mēs redzam tādu dīvainu rezultātu, nevis skaitli 3? Tāpēc, ka otrais saskaitāmais - nav funkcijas darbības rezultāts, bet tās pirmavots (jo mēs šo funkciju neizsaucām, bet vienkārši uzrakstījām).

Tas ir, nosaukums funkcionālā izteiksme apzīmē to, ka šāda funkcija piedalās kādā izteiksmē.

Piešķiršana mainīgajam arī ir izteiksme:

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

Var arī, piemēram, padot funkciju kā parametru console.log un tas izvadīs tās pirmavotu konsolē - tas arī tiks uzskatīts par izteiksmi:

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

Kāpēc tas ir svarīgi: tāpēc, ka atšķirība starp Function Declaration un Function Expression nav tajā, ka pirmā funkcija tiek izveidota ar vārdu, bet otrā sākotnēji vārda nav. Tā nav taisnība.

Piemērs. Lūk, mums ir funkcija bez vārda, bet tajā pašā laikā nepiedalās nevienā izteiksmē (tas ir, ar to netiek veiktas nekādas darbības, runājot vienkāršāk):

/* Šī funkcija būs Function Declaration, bet ar sintakses kļūdu: */ function() { console.log('!'); }

Šāds kods vispār izdos kļūdu! Kāpēc: tā kā funkcija nepiedalās nevienā izteiksmē, tad pārlūks to uzskata par Function Declaration, bet neatrod tās vārdu un izdod kļūdu.

Lai kļūda pazustu, vajag padarīt funkciju kādas izteiksmes daļu. Piemēram, uzrakstīsim pirms tās operāciju +:

+function() { // šāds kods ir korekts console.log('!'); };

Kā tas strādā: pati operācija + nekko nedara, tas ir tāpat kā uzrakstīt skaitļa 3 vietā skaitli +3 - pieļaujami, bet neko nemaina.

Bet funkcijas gadījumā - maina. Tagad mūsu funkcija vairs nav vienkārši uzrakstīta, bet piedalās izteiksmē. Tāpēc kļūdas vairs nebūs. Funkcijas izpildes rezultāta arī nebūs, jo mēs to vienkārši uzrakstījām, bet neizsauciām.

+ vietā var uzrakstīt jebko. Piemēram:

-function() { // šāds kods ir korekts console.log('!'); }; !function() { // šāds kods ir korekts console.log('!'); };

Var arī ievietot mūsu funkciju apaļās iekavās, šajā gadījumā tā arī kļūs par funkcionālo izteiksmi:

(function() { // šāds kods ir korekts console.log('!'); });

Noteikt, vai attēlotā funkcija ir Function Declaration vai Function Expression:

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

Noteikt, vai attēlotā funkcija ir Function Declaration vai Function Expression:

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

Noteikt, vai attēlotā funkcija ir Function Declaration vai Function Expression:

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

Noteikt, vai attēlotā funkcija ir Function Declaration vai Function Expression:

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

Noteikt, vai attēlotā funkcija ir Function Declaration vai Function Expression:

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

Noteikt, vai attēlotā funkcija ir Function Declaration vai Function Expression:

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

Noteikt, vai attēlotā funkcija ir Function Declaration vai Function Expression:

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

Noteikt, vai attēlotā funkcija ir Function Declaration vai Function Expression:

console.log( function() { console.log('!'); } );
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt