JavaScript-də Dəyişənlər Konfliktləri
Tutaq ki, bizim index.html HTML səhifəsi var,
hansı ki, script teqində siz
str dəyişənini yaradır və onu ekranda göstərirsiz:
<html>
<head>
<script>
let str = 'script text';
alert(str); // 'script text' çap edəcək
</script>
</head>
<body>
...
</body>
</html>
Tutaq ki, bizim həmçinin script.js faylı var,
hansında həmçinin str dəyişəni təyin olunub:
let str = 'file text';
İndi tutaq ki, bizim script.js faylı
index.html səhifəsinə aşağıdakı kimi qoşulur:
<html>
<head>
<script>
let str = 'script text';
</script>
<script src="script.js"></script>
<script>
alert(str);
</script>
</head>
<body>
...
</body>
</html>
str dəyişəni həm index.html faylında,
hem də script.js faylında olduğu üçün,
konflikt yaranacaq, hansında ki, aşağıda yazılan dəyişən,
yəni script.js faylından olan dəyişən qalib gələcək.
Yəni bizim kod gözlədiyimiz kimi 'script text' deyil,
'file text' çap edəcək.
Problem əslində çox ciddidir. Real vebsaytda çox vaxt skriptləriniz olan bir neçə fayl olacaq, bundan əlavə, siz bəzi xarici plaginlər qoşacaqsınız. Bu halda bir faylın dəyişənləri və funksiyaları başqa faylın dəyişən və funksiyaları ilə konfliktə girə bilər.