⊗jsPmFCPS 273 of 505 menu

Kabliataškis saugumui IIFE

Tegul mūsų iškart iškviečiama funkcija būna ne su pliuso ženklu pradžioje, o apsupta paprastais skliaustais, štai taip:

(function() { console.log(1); // išves 1 })();

Tegul kintamasis num yra apibrėžiamas už funkcijos ribų:

let num = 1; // kabliataškis yra (function() { console.log(num); // išves 1 })();

Tarkime, dabar mes pamiršome padėti kabliataškį:

let num = 1 (function() { console.log(num); //!! išmes klaidą })();

Pasirodo, kad toks kodas išmes klaidą, nes JavaScript mūsų funkciją suvokia kaip pirmos eilutės komandos tęsinį.

Kad išvengtumėte tokių problemų, prieš funkcijos iškartinį iškvietimą visada būtina dėti kabliataškį, štai taip:

let num = 1 ;(function() { console.log(num); // išves 1 })();

Gali atrodyti, kad problema yra šiek tiek priverstinė. Iš tikrųjų, taip nėra. Gali būti tokia situacija, kai jūsų puslapyje yra prijungiami keli skriptai iš atskirų failų. Tokiu atveju vieno failo pabaigoje gali būti praleistas kabliataškis ir tai automatiškai sukels problemą, jei antrasis failas prasideda funkcijos iškartiniu iškvietimu.

Todėl visada-visada dėkite kabliataškį prieš funkcijos iškartinį iškvietimą, net jei šiuo metu esate įsitikinę, kad problemų nebus. Jos gali atsirasti vėliau.

Pritaikykime aukščiau pasakyta ir iškvieskime funkciją iškart, pradžioje padėdami kabliataškį:

;(function() { console.log(1); // išves 1 })();

Nustatykite, paleidę kodą, kas bus išvesta į konsolę:

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

Nustatykite, paleidę kodą, kas bus išvesta į konsolę:

let str = 'str' (function() { console.log(1); })();
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti