⊗jsPmFCPS 273 of 505 menu

Bodkočiarka pre bezpečnosť v IIFE

Nech naša funkcia volaná na mieste začína nie plusom, ale je obalená okrúhlymi zátvorkami, takto:

(function() { console.log(1); // vypíše 1 })();

Nech premenná num je definovaná mimo funkcie:

let num = 1; // bodkočiarka je prítomná (function() { console.log(num); // vypíše 1 })();

Nech teraz zabudneme pridať bodkočiarku:

let num = 1 (function() { console.log(num); //!! spôsobí chybu })();

Ukazuje sa, že takýto kód spôsobí chybu, pretože JavaScript interpretuje našu funkciu ako pokračovanie príkazu v prvom riadku.

Aby sme sa vyhli takýmto problémom, pred volaním funkcie na mieste je vždy potrebné uviesť bodkočiarku, takto:

let num = 1 ;(function() { console.log(num); // vypíše 1 })();

Môže sa zdať, že problém je trochu nafúknutý. V skutočnosti to tak nie je. Môže nastať situácia, keď na vašej stránke sú pripojených niekoľko skriptov z rôznych súborov. V tom prípade na konci jedného súboru môže chýbať bodkočiarka a to automaticky spôsobí problém, ak druhý súbor začína volaním funkcie na mieste.

Preto vždy – vždy uvádzajte bodkočiarku pred volaním funkcie na mieste, aj keď momentálne ste si istí, že problémy nevzniknú. Môžu sa objaviť neskôr.

Aplikujme vyššie uvedené a zavolajme funkciu na mieste, pričom na začiatok pridáme bodkočiarku:

;(function() { console.log(1); // vypíše 1 })();

Určite, bez spustenia kódu, čo sa vypíše do konzoly:

let str = 'str'; (function() { console.log(1); })();

Určite, bez spustenia kódu, čo sa vypíše do konzoly:

let str = 'str' (function() { console.log(1); })();
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
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť