Konfliktet e Variablave në JavaScript

Le të themi se kemi një faqe HTML index.html, në të cilën në tag-un script ju krijohet variabla str dhe e shfaqni atë në ekran:

index.html<html>
  <head>
    <script>
      let str = 'script text';
      alert(str); // do të shfaqë 'script text'
    </script>
  </head>
  <body>
    ...
  </body>
</html>

Le të themi gjithashtu se kemi skedarin script.js, në të cilin gjithashtu përcaktohet variabla str:

script.jslet str = 'file text';

Le të themi tani që skedari ynë script.js lidhet në faqen index.html si më poshtë:

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

Meqenëse variabla str ekziston edhe në skedarin index.html, edhe në skedarin script.js, do të ketë një konflikt, në të cilin do të fitojë ajo variabël që është shkruar më poshtë, domethënë variabla nga skedari script.js. Kjo do të thotë se kodi ynë do të shfaqë 'file text', dhe jo 'script text', siç presim ne.

Problemi është në të vërtetë shumë serioz. Në një faqe reale, më shpesh se jo, do të keni disa skedarë me skriptet tuaja, përveç kësaj, ju do të lidhni disa shtojca nga palët e treta. Në këtë rast, variablat dhe funksionet e një skedari mund të bien në konflikt me variablat dhe funksionet e një skedari tjetër.