⊗jsPmFTFENIn 233 of 505 menu

Funktionaalisten lausekkeiden vivahteet JavaScriptissä

Nimi Function Expression ei ole annettu turhaan. Se todella tarkoittaa sitä - että tällaiset funktiot ovat osan jotakin lauseketta.

Esimerkiksi voimme laskea yhteen jonkin merkkijonon ja nimetön funktio:

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

Miksi näemme niin outoan tuloksen, eikä numeron 3? Koska toinen termi - ei ole funktion tulosta, vaan sen lähde- koodi (koska emme kutsuneet tätä funktiota, vaan yksinkertaisesti kirjoitimme sen).

Toisin sanoen nimi funktionaalinen lauseke ilmaisee, että tällainen funktio osallistuu johonkin lausekkeeseen.

Muuttujaan sijoittaminen on myös lauseke:

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

Voimme myös, esimerkiksi, välittää funktion parametrina console.log:iin ja se tulostaa sen lähdekoodin konsoliin - tämäkin lasketaan lausekkeeksi:

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

Miksi tämä on tärkeää: koska Function Declaration:n ja Function Expression:n ero ei ole siinä, että ensimmäinen funktio luodaan nimellä, ja toisella aluksi ei ole nimeä. näin ei ole.

Esimerkki. Tässä on funktio ilman nimeä, mutta ei osallistu mihinkään lausekkeeseen (eli sille ei tehdä mitään toimintoja, yksinkertaisesti sanottuna):

/* Tämä funktio on Function Declaration, mutta syntaksivirheellinen: */ function() { console.log('!'); }

Tällainen koodi antaa yleensä virheen! Miksi: koska funktio ei osallistu mihinkään lausekkeeseen, selain pitää sitä Function Declaration:na, mutta ei löydä sen nimeä ja antaa virheen.

Jotta virhe katoaa, meidän on tehtävä funktiosta osa jotakin lauseketta. Esimerkiksi, kirjoitetaan ennen sitä operaatio +:

+function() { // tällainen koodi on oikein console.log('!'); };

Miten tämä toimii: itse operaation + ei tee mitään, se on kuin kirjoittaisi numeron 3 sijasta numeron +3 - sallittua, mutta ei muuta mitään.

Mutta funktion tapauksessa - se muuttaa. Nyt funktiomme ei ole enää pelkästään kirjoitettu, vaan osallistuu lausekkeeseen. Siksi virhettä ei enää tule. Funktion suoritustulosta ei myöskään tule, sillä me vain kirjoitimme sen, emme kutsuneet.

+:n sijasta voidaan kirjoittaa mitä tahansa. Esimerkiksi:

-function() { // tällainen koodi on oikein console.log('!'); }; !function() { // tällainen koodi on oikein console.log('!'); };

Voimme myös laittaa funktion sulkeisiin, jolloin siitä tulee myös funktionaalinen lauseke:

(function() { // tällainen koodi on oikein console.log('!'); });

Määritä, onko esitetty funktio Function Declaration vai Function Expression:

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

Määritä, onko esitetty funktio Function Declaration vai Function Expression:

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

Määritä, onko esitetty funktio Function Declaration vai Function Expression:

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

Määritä, onko esitetty funktio Function Declaration vai Function Expression:

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

Määritä, onko esitetty funktio Function Declaration vai Function Expression:

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

Määritä, onko esitetty funktio Function Declaration vai Function Expression:

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

Määritä, onko esitetty funktio Function Declaration vai Function Expression:

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

Määritä, onko esitetty funktio Function Declaration vai Function Expression:

console.log( function() { console.log('!'); } );
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää