⊗jsPmMCVD 496 of 505 menu

Konflikty proměnných v JavaScriptu

Nechť máme HTML stránku index.html, na které v tagu script vytvoříte proměnnou str a vypíšete ji na obrazovku:

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

Nechť máme také soubor script.js, ve kterém je také nastavena proměnná str:

let str = 'file text';

Nechť je nyní náš soubor script.js připojen ke stránce index.html následujícím způsobem:

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

Protože proměnná str je jak v souboru index.html, tak v souboru script.js, dojde ke konfliktu, ve kterém vyhraje ta proměnná, která je napsána níže, tedy proměnná ze souboru script.js. To znamená, že náš kód vypíše 'file text', a ne 'script text', jak očekáváme.

Problém je ve skutečnosti velmi závažný. V reálném webu budete mít nejčastěji několik souborů se svými skripty, kromě toho budete připojovat nějaké pluginy třetích stran. V tomto případě mohou proměnné a funkce jednoho souboru konfliktovat s proměnnými a funkcemi jiného souboru.

Č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