Maison >interface Web >js tutoriel >Comprenez-vous vraiment la différence entre ajouter var et ne pas ajouter var dans les compétences javascript_javascript
Javascript est un produit qui suit la norme ECMAScript, et naturellement il doit suivre la norme ECMAScript.
Regardons d'abord la définition et l'utilisation du mot-clé var
L'instructionvar est utilisée pour déclarer des variables.
La création de variables JavaScript est aussi appelée « déclarer » une variable :
Une fois qu'une variable est déclarée, la variable est vide (n'a aucune valeur).
Copier les variables, le fonctionnement est le suivant :
Lors de la déclaration d'une variable, vous pouvez également attribuer une valeur à la variable :
Grammaire
Valeur du paramètre
Paramètres | Description |
---|---|
nomvar | Obligatoire. Spécifiez le nom de la variable.
Les noms de variables peuvent contenir des lettres, des chiffres, des traits de soulignement et des signes dollar.
|
valeur | Facultatif. Spécifiez la valeur de la variable. Remarque : Si une déclaration de variable ne précise pas de valeur, sa valeur par défaut est non définie |
Tout le monde a lu de nombreux articles et ils disent tous d'éviter la déclaration implicite de variables globales, ce qui signifie que 'var' doit être ajouté avant de déclarer une variable. Alors, quelle est la différence entre ajouter 'var' et ne pas ajouter 'var'. ?
Regardons d'abord un morceau de code
var a = 'aa'; alert(a); //弹出 'aa' alert(window.a)//弹出'aa'
Compris, lorsque vous déclarez une variable globale, vous ajoutez en fait un attribut à l'objet 'window'. Le morceau de code suivant a le même effet
a = 'aa'; alert(a); //弹出 'aa' alert(window.a)//弹出'aa'
Alors "var a = 'aa' " et "a = 'aa' " sont tous deux des variables globales, quelle est la différence ? Regardez les deux morceaux de code suivants
var a = 'aa'; delete window.a; // false a = 'aa'; delete window.a; // true
Ils ajoutent tous des attributs à l'objet 'window', l'un peut être supprimé et l'autre ne peut pas être supprimé. Mais l'ajout de 'var' le rend lié à la portée. Sans 'var', vous ajoutez toujours des attributs de manière dynamique à l'objet 'windows'. Le code suivant le prouve
.
var test = function(){ a = 'aa'; } test(); alert(window.a);//弹出'aa'
L'objet window étant un objet global, il peut être omis par défaut. Le paragraphe suivant a le même effet
var test = function(){ a = 'aa'; } test(); alert(a);//弹出'aa'
En parlant de cela, les étudiants qui réfléchissent sérieusement doivent maintenant se poser une question : pourquoi les variables globales implicitement déclarées peuvent-elles être supprimées, mais les variables globales explicitement déclarées ne peuvent pas être supprimées ?
La raison est que "delete ne peut pas supprimer les propriétés dont la configurabilité est fausse". Les propriétés de certains objets intégrés ne sont pas configurables, comme les propriétés des objets globaux créés via des déclarations de variables ou des déclarations de fonctions.
delete Object.prototype; // false 不可删除,该属性是不可配置的 var a = 'aa'; delete window.a;//false 不可删除,该属性是不可配置的 function test(){}; delete window.test;//false 不可删除,该属性是不可配置的
Alors ne comprenez-vous pas que la variable globale déclarée avec 'var' ajoute en fait un attribut non configurable à l'objet 'window', tandis que la variable globale déclarée sans 'var' ajoute en fait un attribut non configurable à l'objet 'window'. Objet 'window'. Une propriété configurable est ajoutée à l'objet 'window'.
Notez que partout où window est utilisé ci-dessus, window peut être remplacé par ceci, comme :
var test = function(){ a = 'aa'; } test(); alert(this.a);//弹出'aa'
Quant à la raison, veuillez consulter l'article que j'ai écrit avant 'Ça, ceci, discutez-en à nouveau en javascript, super complet'
Ce qui suit extrait le mot-clé var en javascript et l'explique séparément à tout le monde.
Nous savons que lors de la définition d'une variable, nous devons utiliser le mot-clé Var. Lorsque nous utilisons le mot-clé Var, nous devons faire attention à son utilisation :
Les exemples suivants illustrent pleinement que Var a des résultats d'exécution différents lorsqu'il est utilisé ou non, et lorsque des variables globales et des variables locales sont définies.
var var01 = 1; function funtest() { document.write(var01); var var01 = 0; }
Le résultat est : indéfini
var var01 = 1; function funtest() { document.write(var01); var01 = 0; }
Le résultat est : 1
var01 = 1; function funtest() { document.write(var01); var var01 = 0; }
Le résultat est : indéfini
var01 = 1; function funtest() { document.write(var01); var01 = 0; }
Le résultat est : 1
Découvrez ce que vous savez sur var en JavaScript ici. Je pense que tout le monde gagnera quelque chose en apprenant grâce à cet article. Pour en savoir plus sur javascript var, continuez à prêter attention à ce site, merci !