Maison  >  Article  >  interface Web  >  Explication détaillée de la déclaration des variables JS

Explication détaillée de la déclaration des variables JS

怪我咯
怪我咯original
2017-07-06 11:31:481683parcourir

Peu importe où apparaît l'instruction de déclaration de variable JavaScript, elle sera exécutée en premier avant les autres codes. Cet article vous présentera les connaissances liées à la déclaration de variable JavaScript. Les amis intéressés peuvent apprendre ensemble

Peu importe où apparaît une instruction de déclaration de variable JavaScript, elle sera exécutée en premier avant tout autre code. La portée d'une variable déclarée à l'aide du mot-clé var

est le contexte d'exécution actuel, qui peut être une fonction périphérique, ou lorsque la variable est déclarée en dehors du corps de la fonction, il s'agit d'une variable globale. Les éléments définis en dehors du corps de la fonction sont des variables globales, et ceux définis à l'intérieur du corps de la fonction sont des variables locales. La définition ici fait référence à la déclaration via var.


JavaScript a le concept de globales implicites, ce qui signifie que toute variable que vous ne déclarez pas deviendra une propriété d'objet globale. Par exemple :

Les deux résultats sont identiques, indiquant que monnom est une variable globale.
function test(){
myname = "huming";
alert(myname);
}
test();  // "huming"
alert(myname);  //"huming"


Alors, y a-t-il une différence entre les variables globales implicites et les variables globales explicitement définies ? . La réponse est définitivement oui, regardez l'exemple suivant :

Comme le montre l'exemple ci-dessus : global_test1 défini par var en dehors de la fonction ne peut pas être supprimé, tandis que global_test2 et global_test3 ne sont pas définis par var . sont supprimés (qu’ils soient créés ou non dans le corps de la fonction).
// 定义三个全局变量
var global_test = ;
global_test = ; // 反面教材
(function () {
global_test = ; // 反面教材
}());
// 试图删除
delete global_test; // false
delete global_test; // true
delete global_test; // true
// 测试该删除
alert(typeof global_test); // "number"
alert(typeof global_test); // "undefined"
alert(typeof global_test); // "undefined"


En résumé, les variables globales déclarées via var en dehors de la fonction ne peuvent pas être supprimées, mais les variables globales implicites peuvent être supprimées.


Quelque chose à noter ici : JavaScript a un comportement appelé « levage » (suspension/analyse supérieure/pré-analyse).


Illustrons avec un exemple :

Pensez-vous que le contenu des deux alertes est cohérent ? ? Manifestement incohérent, il va sans dire cohérent. . La sortie réelle est : "undefined", "local_huming".
var myname = "huming"; //声明全局变量
function test() {
alert(myname);
var myname = "local_huming";
alert(myname);
}
test();


L'exemple ci-dessus est équivalent à

Le myname généré par la première alerte n'est pas la variable globale que vous pensez, mais est dans la même portée (un corps de fonction) comme c'est le cas) des variables locales à l'intérieur. Même s’il n’a pas été déclaré, il est traité comme tel. C'est ce qu'on appelle le « levage ».
var myname = "huming"; //声明全局变量
function test() {
  var myname;
  alert(maname);<br>  myname = "local_huming";
  alert(myname); // "local"
}
test();


Cela devrait être clair. Lorsque vous utilisez une variable dans le corps d’une fonction et que vous la déclarez à nouveau ultérieurement, une erreur peut se produire.


Spécifications d'écriture :

L'avantage est :
function test() {
var a = ,
b = ,
c = a + b,
d = {},
e,
f;
// function body...
}


1. Toutes les variables locales sont définies au début de la fonction, ce qui la rend facile à trouver ;


2. Empêchez les erreurs logiques causées par l'utilisation de variables avant qu'elles ne soient définies.

En JavaScript, un

nom de variable (nom) a quatre façons d'entrer dans la portée (portée) langage intégré, tous là est-ce que this et arguments sont des mots-clés dans la portée


paramètres formels, et

les paramètres de la fonction

sont valides dans toute la portée
Déclaration de fonction


Déclaration de variable

Les quatre ordres répertoriés ci-dessus sont également l'ordre de

priorité

de haut en bas. Une fois qu'un nom de variable a été déclaré, il ne peut pas être remplacé. par d'autres formulaires de déclaration de variables de moindre priorité.

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!

Déclaration:
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