⊗jsPmFCPS 273 of 505 menu

Tačka zarez za bezbednost u IIFE

Neka sada naša funkcija koja se poziva na mestu ne počinje sa plusom, već je obavijena oblim zagradama, ovako:

(function() { console.log(1); // ispisaće 1 })();

Neka se promenljiva num definiše izvan funkcije:

let num = 1; // tačka zarez je stavljena (function() { console.log(num); // ispisaće 1 })();

Hajde sada da zaboravimo da stavimo tačku zarez:

let num = 1 (function() { console.log(num); //!! izbaciće grešku })();

Ispostavlja se da će ovakav kod izbaciti grešku, pošto JavaScript našu funkciju doživljava kao nastavak komande iz prvog reda.

Da bismo izbegli takve probleme, pre poziva funkcije na mestu uvek je potrebno staviti tačku zarez, ovako:

let num = 1 ;(function() { console.log(num); // ispisaće 1 })();

Može se učiniti da je problem pomalo nategnut. U stvarnosti, nije tako. Može se desiti situacija da na vašoj stranici postoje nekoliko skripti iz posebnih fajlova. U tom slučaju na kraju jednog fajla može nedostajati tačka zarez i to automatski dovodi do problema, ako drugi fajl počinje sa pozivom funkcije na mestu.

Zato, uvek-uvek stavljajte tačku zarez pre poziva funkcije na mestu, čak i ako ste u ovom trenutku sigurni da problema neće biti. Oni se mogu pojaviti kasnije.

Primenimo gore rečeno i pozovimo funkciju na mestu, stavljajući na početku tačku zarez:

;(function() { console.log(1); // ispisaće 1 })();

Odredite, bez pokretanja koda, šta će biti ispisano u konzolu:

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

Odredite, bez pokretanja koda, šta će biti ispisano u konzolu:

let str = 'str' (function() { console.log(1); })();
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij