Maison > interface Web > js tutoriel > le corps du texte

Exemple détaillé de la façon de distinguer si une variable est définie en JavaScript avec ou sans var

伊谢尔伦
Libérer: 2017-07-18 10:11:15
original
1289 Les gens l'ont consulté

Résumons la différence entre utiliser ou non le mot-clé var lors de la définition de variables.

Au sein d'une fonction, les variables déclarées avec var et sans var sont différentes. Celles déclarées avec var sont des variables locales, et celles sans var sont déclarées variables globales, vous pouvez donc l'utiliser pour exposer des éléments d'interface au monde extérieur.

Il est légal et inoffensif d'utiliser les instructions var pour répéter les instructions de déclaration. Si l'instruction est répétée avec une affectation, elle n'est pas différente d'une instruction d'affectation normale. Si vous essayez de lire une variable non déclarée, JS signalera une erreur.

Dans la portée des fonctions de JavaScript, les variables déclarées ou les fonctions internes sont visibles dans le corps de la fonction. Cela signifie que la fonction peut être disponible avant d'être définie. Il existe deux manières de définir une fonction, l'une est une expression de définition de fonction et l'autre est une instruction de déclaration de fonction.

Les déclarations de déclaration de fonction sont "avancées" en haut du script externe ou de la portée de la fonction externe, de sorte qu'une fonction déclarée de cette manière peut être appelée par le code qui apparaît avant d'être définie. Dans les expressions de définition de fonction, la déclaration des variables est avancée, mais l'affectation aux variables ne l'est pas. Par conséquent, les fonctions définies dans les expressions ne peuvent pas être appelées avant que la fonction ne soit définie.

1. Les variables définies avec var dans la portée de la fonction sont des variables locales, et les variables définies sans var deviennent des variables globales.
Utiliser la définition var :


var a = 'hello World';
function bb(){
 var a = 'hello Bill';
 console.log(a);  
}
bb()      //'hello Bill'
console.log(a);  //'hello world'
Copier après la connexion

Ne pas utiliser la définition var :


var a = 'hello World';
function bb(){
 a = 'hello Bill';
 console.log(a);  
}
bb()      //'hello Bill'
console.log(a);  //'hello Bill'
Copier après la connexion

2 . Dans la portée globale, les variables définies à l'aide de var ne peuvent pas être supprimées et les variables définies sans var peuvent être supprimées. Cela signifie que les variables globales implicites ne sont pas à proprement parler des variables réelles, mais des attributs de l'objet global, car les attributs peuvent être supprimés via delete. Supprimer, mais les variables ne le peuvent pas.

3. Utiliser var pour définir une variable favorisera également la déclaration de variable, c'est-à-dire
Utiliser var pour définir :


function hh(){
 console.log(a);
 var a = 'hello world';
}
hh()      //undefined
Copier après la connexion

Ne pas utiliser var Définition :


function hh(){
 console.log(a);
 a = 'hello world';
}
hh()      //'a is not defined'
Copier après la connexion

Il s'agit de la déclaration des variables définies à l'avance à l'aide de var.

4. Dans le mode 'use strict' d'ES5, si la variable n'est pas définie à l'aide de var, une erreur sera signalée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!