Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗jsPmMCVD 496 of 505 menu

Канфлікты зменных у JavaScript

Няхай у нас ёсць HTML старонка index.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. Гэта значыць наш алерт выведе 'file text', а не 'script text', як мы чакаем.

Праблема на самой справе вельмі сур'ёзная. У рэальным сайце ў вас найчасцей будзе некалькі файлаў з вашымі скрыптамі, акрамя таго, вы будзеце падключаць якіясьці староннія плагіны. У гэтым выпадку зменныя і функцыі аднаго файла могуць канфліктаваць са зменнымі і функцыямі другога файла.

byenru