JavaScript'теги өзгөрмөлөрдүн конфликтилери
Бизде index.html HTML баракчасы бар болсун,
script тегинде сиз
str өзгөрмөсүн түзөсүз жана аны экранга чыгарасыз:
<html>
<head>
<script>
let str = 'скрипт тексти';
alert(str); // 'скрипт тексти' деп чыгарат
</script>
</head>
<body>
...
</body>
</html>
Ошондой эле бизде script.js файлы бар болсун,
анда дагы str өзгөрмөсү коюлган:
let str = 'файл тексти';
Эми биздин script.js файлыбыз
index.html баракчасына төмөнкүдөй кошулсун:
<html>
<head>
<script>
let str = 'скрипт тексти';
</script>
<script src="script.js"></script>
<script>
alert(str);
</script>
</head>
<body>
...
</body>
</html>
str өзгөрмөсү index.html файлында да,
script.js файлында да болгондуктан,
конфликт пайда болот, ал жерде төмөн жазылган
өзгөрмө, башкача айтканда
script.js файлындагы өзгөрмө жеңет.
Башкача айтканда, биздин код
'файл тексти' деп чыгарат, биз күткөндөй эмес
'скрипт тексти' эмес.
Маселэ чындыгында абдан оор. Чыныгы сайтта сизде көбүнчө өз скриптериңиз менен бир нече файл болот, үстөвө, сиз каалаган үчүнчү тарап плагиндерин кошосуз. Бул учурда бир файлдын өзгөрмөлөрү жана функциялары башка файлдын өзгөрмөлөрү жана функциялары менен конфликтке тушушу мүмкүн.