Il y a quelque temps, j'ai répondu à une différence entre l'utilisation du mot-clé VAR lors de la définition des variables. Prenons-le.
1. Les variables définies en ajoutant VAR à la portée de la fonction sont des variables locales, et celles définies sans VAR deviennent des variables globales.
Utilisez var pour définir:
var a = 'hello world'; fonction bb () {var a = 'bonjour bill'; console.log (a); } bb () // 'bonjour bill'console.log (a); //'Bonjour le monde'N'utilise pas la définition var:
var a = 'hello world'; fonction bb () {a = 'bonjour bill'; console.log (a); } bb () // 'bonjour bill'console.log (a); // 'Bonjour Bill'2. Dans la portée globale, les variables définies avec VAR ne peuvent pas être supprimées, les variables définies sans VAR peuvent être supprimées. Cela signifie que les variables globales implicites ne sont strictement pas des variables réelles, mais les attributs des objets globaux, car les attributs peuvent être supprimés via la suppression, et les variables ne peuvent pas l'être.
3. Définition des variables à l'aide de VAR améliorera également les déclarations variables, c'est-à-dire
Utilisez var pour définir:
fonction hh () {console.log (a); var a = 'Hello World';} hh () // UndefinedN'utilise pas la définition var:
fonction hh () {console.log (a); a = 'Hello World';} hh () // 'a n'est pas défini'Il s'agit de la déclaration de variables définies à l'aide de VAR à l'avance.
4. Dans le mode «Utiliser Strict» d'ES5, si la variable n'est pas définie à l'aide de VAR, une erreur sera signalée.