⊗jsPmMCVD 496 of 505 menu

Konflikty premenných v JavaScripte

Predpokladajme, že máme HTML stránku index.html, na ktorej v tagu script vytvoríte premennú str a vypíšete ju na obrazovku:

<html> <head> <script> let str = 'script text'; alert(str); // vypíše 'script text' </script> </head> <body> ... </body> </html>

Predpokladajme, že máme tiež súbor script.js, v ktorom je tiež definovaná premenná str:

let str = 'file text';

Predpokladajme teraz, že náš súbor script.js je pripojený k stránke index.html nasledovným spôsobom:

<html> <head> <script> let str = 'script text'; </script> <script src="script.js"></script> <script> alert(str); </script> </head> <body> ... </body> </html>

Keďže premenná str existuje aj v súbore index.html, aj v súbore script.js, dôjde ku konfliktu, v ktorom vyhrá tá premenná, ktorá je napísaná nižšie, teda premenná zo súboru script.js. To znamená, že náš kód vypíše 'file text', a nie 'script text', ako očakávame.

Problém je v skutočnosti veľmi vážny. V reálnom webe budete mať najčastejšie niekoľko súborov so svojimi skriptmi, navyše budete pripájať nejaké externé pluginy. V tomto prípade môžu premenné a funkcie jedného súboru konfliktovať s premennými a funkciami iného súboru.

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ť