Clarifier les différences dans les syntaxes de déclaration de variables en Javascript
Dans la portée globale de Javascript, déclarer des variables avec des syntaxes différentes peut en effet conduire à des variations subtiles.
Concernant vos options :
1. var a = 0;
Déclarer une variable avec "var" crée une variable globale qui existe également en tant que propriété de l'objet global (par exemple, "window" dans les navigateurs ou "globalThis" dans ES2020) . Cette propriété ne peut pas être supprimée à l'aide de "delete" car il s'agit d'une liaison d'identifiant.
2. a = 0;
Attention : Cette syntaxe est fortement déconseillée. Sans le mot-clé "var" ou "let", Javascript considère cela comme une variable globale implicite, mais cela devient une erreur en mode strict. En tant que tel, ce n'est pas une pratique recommandée.
3. fenêtre.a = 0; ou globalThis.a = 0;
Cette syntaxe attribue explicitement une propriété à l'objet global. Contrairement à "var", ces propriétés peuvent être supprimées avec "delete".
4. this.a = 0;
L'affectation à "this" crée une propriété globale, mais elle n'est pas recommandée car elle peut conduire à une ambiguïté dans les gestionnaires d'événements.
Supplémentaire Syntaxe ES2015 :
1.1 soit a = 0;
"let" déclare une variable globale qui n'est pas une propriété de l'objet global. La liaison d'identifiant est créée au début du bloc englobant mais ne devient accessible que lorsque l'exécution du code atteint la déclaration "let".
1.2 const a = 0;
Semblable à "let", "const" déclare une constante globale qui n'est pas une propriété de l'objet global. Cependant, la valeur de la constante ne peut pas être modifié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!