JavaScript-те айнымалылар қайшылықтары
Бізде index.html HTML беті болсын,
онда script тегінде сіз
str айнымалысын жасап,
оны экранға шығарасыз:
<html>
<head>
<script>
let str = 'script text';
alert(str); // 'script text' шығарады
</script>
</head>
<body>
...
</body>
</html>
Сондай-ақ бізде script.js файлы бар болсын,
онда да str айнымалысы берілген:
let str = 'file text';
Енді біздің script.js файлымыз
index.html бетіне келесі түрде қосылсын:
<html>
<head>
<script>
let str = 'script text';
</script>
<script src="script.js"></script>
<script>
alert(str);
</script>
</head>
<body>
...
</body>
</html>
str айнымалысы index.html файлында да,
script.js файлында да болғандықтан,
қайшылық пайда болады, онда төменде жазылған айнымалы,
яғни script.js файлының айнымалысы жеңеді.
Яғни біздің код біз күткендей 'script
text' емес, 'file text' шығарады.
Мәселе шын мәнінде өте байсалды. Нағыз сайтта сізде әдетте бірнеше скрипт файлдары болады, сонымен қатар сіз бірнеше үшінші тарап плагиндерін қосасыз. Бұл жағдайда бір файлдың айнымалылары мен функциялары басқа файлдың айнымалылары мен функцияларымен қайшылыққа ұшырауы мүмкін.