⊗jsPmFCPS 273 of 505 menu

Puntkomma voor veiligheid in IIFE

Laten we nu ervan uitgaan dat onze direct uitgevoerde functie niet met een plus begint, maar tussen ronde haakjes staat, zoals hier:

(function() { console.log(1); // geeft 1 weer })();

Stel dat de variabele num buiten de functie wordt gedefinieerd:

let num = 1; // puntkomma staat er (function() { console.log(num); // geeft 1 weer })();

Stel nu dat we vergeten zijn de puntkomma te plaatsen:

let num = 1 (function() { console.log(num); //!! geeft een foutmelding })();

Het blijkt dat deze code een foutmelding geeft, omdat JavaScript onze functie opvat als een voortzetting van de opdracht op de eerste regel.

Om dergelijke problemen te voorkomen, moet voor de aanroep van een direct uitgevoerde functie altijd een puntkomma worden geplaatst, zoals hier:

let num = 1 ;(function() { console.log(num); // geeft 1 weer })();

Het lijkt misschien een ietwat verzonnen probleem. Dat is het echter niet. Het kan voorkomen dat er meerdere scripts van aparte bestanden op je pagina worden geladen. In dat geval kan aan het einde van het ene bestand de puntkomma zijn weggelaten en dit leidt automatisch tot een probleem als het tweede bestand begint met een directe functie-aanroep.

Plaats daarom altijd, altijd een puntkomma voor de aanroep van een direct uitgevoerde functie, zelfs als je op dit moment zeker weet dat er geen problemen zullen zijn. Die kunnen later ontstaan.

Laten we het bovenstaande toepassen en de functie direct aanroepen, waarbij we een puntkomma aan het begin plaatsen:

;(function() { console.log(1); // geeft 1 weer })();

Bepaal, zonder de code uit te voeren, wat er in de console wordt weergegeven:

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

Bepaal, zonder de code uit te voeren, wat er in de console wordt weergegeven:

let str = 'str' (function() { console.log(1); })();
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren