Maison  >  Article  >  interface Web  >  Une utilisation incorrecte de var en javascript provoque des astuces undefined_javascript

Une utilisation incorrecte de var en javascript provoque des astuces undefined_javascript

WBOY
WBOYoriginal
2016-05-16 15:07:131240parcourir

En JavaScript, les variables sont divisées en variables locales et variables globales en fonction de leurs différentes portées. Les variables définies directement sont des variables globales, et les variables globales sont accessibles par tous les scripts. Les variables définies dans les fonctions sont des variables locales et uniquement des variables locales. Valable dans les fonctions.
Si les variables globales et les variables locales utilisent le même nom de variable, la variable locale écrasera la variable globale.
Exemple de code :

<!DOCTYPE html> 
<html> 
  <head> 
    <meta charset="utf-8"> 
    <title>js中全局变量与局部变量</title> 
  </head> 
  <body> 
    <script type="text/javascript"> 
      var a = "全局变量"; 
      function test1() 
      { 
        var a = "局部变量"; 
         
        alert(a); 
      } 
       
      function test2() 
      { 
        alert(a); 
         
        var a = "局部变量"; 
         
        alert(a); 
      } 
       
      function test3() 
      { 
        alert(a); 
         
        a = "局部变量"; 
         
        alert(a); 
      } 
    </script> 
     
    <input type="button" value="test1" onclick="test1()"/> 
    <input type="button" value="test2" onclick="test2()"/> 
    <input type="button" value="test3" onclick="test3()"/> 
 
  </body> 
</html> 

Le résultat de l'opération est le suivant :
Cliquez sur test1 pour faire apparaître les variables locales.
Cliquez sur test2, un élément non défini apparaît, puis les variables locales apparaissent

Cliquez sur test3 pour afficher les variables globales, puis affichez les variables locales

Voici la différence entre utiliser var et ne pas l'utiliser :
Si vous utilisez var, alors le programme forcera la définition d'une nouvelle variable.
Si var n'est pas utilisé, Le système recherchera d'abord si la variable existe dans le contexte actuel, et ne redéfinira une nouvelle variable que si elle n'existe pas.

Dans test3, les variables utilisées sont toutes des variables globales. La première fois que la variable globale est directement sortie, la deuxième fois est utilisée après avoir directement attribué une valeur à la variable globale.
Dans test1 et test2, l'utilisation de var pour définir une nouvelle variable portant le même nom dans la fonction entraînera l'écrasement des variables de la fonction par rapport à la variable globale. Donc dans test2 : la première sortie a est la variable locale a qui a été écrasée, mais aucune valeur initiale n'est donnée, donc le résultat non défini apparaîtra. Utiliser des variables de cette manière est en réalité erroné et doit être évité.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn