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

Comprenez-vous vraiment la différence entre ajouter var et ne pas ajouter var dans les compétences javascript_javascript

WBOY
Libérer: 2016-05-16 15:21:27
original
1888 Les gens l'ont consulté

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'instruction

var est utilisée pour déclarer des variables.

La création de variables JavaScript est aussi appelée « déclarer » une variable :

Copier le code Le code est le suivant :

var carName;

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 :

Copier le code Le code est le suivant :

carName = "Volvo";

Lors de la déclaration d'une variable, vous pouvez également attribuer une valeur à la variable :

Copier le code Le code est le suivant :

var carName = "Volvo";

Grammaire

Copier le code Le code est le suivant :

var nomvar = valeur;

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.

  • Les noms de variables doivent commencer par une lettre
  • Les noms de variables peuvent également commencer par $ et _ (mais ne sont généralement pas utilisés de cette façon)
  • Les noms de variables sont sensibles à la casse (y et Y sont des variables différentes)
  • Les mots réservés (tels que les mots-clés JavaScript) ne peuvent pas être utilisés comme noms de variables
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' 
Copier après la connexion

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' 
Copier après la connexion

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 
Copier après la connexion

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' 
Copier après la connexion

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' 
Copier après la connexion

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 不可删除,该属性是不可配置的 
Copier après la connexion

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' 
Copier après la connexion

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;
} 
Copier après la connexion

Le résultat est : indéfini

var var01 = 1;
function funtest() {
 document.write(var01);
 var01 = 0;
} 
Copier après la connexion

Le résultat est : 1

 var01 = 1;
function funtest() {
 document.write(var01);
 var var01 = 0;
}
Copier après la connexion

Le résultat est : indéfini

var01 = 1;
function funtest() {
 document.write(var01);
 var01 = 0;
}
Copier après la connexion

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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal