⊗jsPmFCPS 273 of 505 menu

Středník pro bezpečnost v IIFE

Nechť je naše funkce volaná na místě nyní nezačíná plusem, ale je obalena kulatými závorkami, takto:

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

Nechť je proměnná num definována vně funkce:

let num = 1; // středník je přítomen (function() { console.log(num); // vypíše 1 })();

Nyní předpokládejme, že jsme zapomněli napsat středník:

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

Ukazuje se, že takový kód vyhodí chybu, protože JavaScript vnímá naši funkci jako pokračování příkazu z prvního řádku.

Abychom se takovým problémům vyhnuli, je před voláním funkce na místě vždy nutné napsat středník, takto:

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

Může se zdát, že je problém poněkud umělý. Ve skutečnosti tomu tak není. Může nastat situace, kdy na své stránce připojujete několik skriptů z oddělených souborů. V tomto případě může být na konci jednoho souboru vynechán středník a to automaticky povede k problému, pokud druhý soubor začíná voláním funkce na místě.

Proto vždy-vždy uvádějte středník před voláním funkce na místě, i když jste v danou chvíli přesvědčeni, že problémy nebudou. Mohou vzniknout později.

Aplikujme výše řečené a zavolejme funkci na místě, přičemž na začátek vložíme středník:

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

Určete, bez spuštění kódu, co se vypíše do konzole:

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

Určete, bez spuštění kódu, co se vypíše do konzole:

let str = 'str' (function() { console.log(1); })();
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout