Je pense que vous connaissez les variables globales. Une variable définie dans la portée de la fonction avec a=1 sera une variable globale. Dans la portée globale, vous pouvez utiliser les trois formes suivantes pour créer un nom visible globalement :
Copiez le code comme suit :
<script>
var a = 1 ;
b = 2 ;
fenêtre.c = 3;
</script>
Pour la méthode b=2, c'est en fait la même chose que c. Lors de l'exécution de cette instruction d'affectation, elle recherchera une variable nommée b le long de la chaîne de portées. Elle ne l'a pas trouvée jusqu'à ce qu'elle atteigne le sommet de la chaîne de portées. il donne à Window, ajoute une propriété b et attribue une valeur.
Il existe deux différences entre var et non-var :
1 La variable globale de var ne peut pas être supprimée, car delete supprime intelligemment les attributs supprimables de l'objet, et les attributs globaux définis par var seront marqués comme non supprimables. Il convient de noter que si la suppression échoue, aucune erreur ne sera générée. La valeur de retour de delete est true|false.
2 Les variables globales définies par var seront promues, mais les variables globales définies sans var ne seront pas promues. Vous pouvez voir les résultats d'exécution du programme suivant :
Copiez le code comme suit :
<script>
alerte(a);
var a = 1 ;
</script>
Copiez le code comme suit :
<script>
alert(a);//erreur, un élément non défini
une = 1 ;
</script>