Maison >interface Web >js tutoriel >Comment supprimer les variables JavaScript ?
Désactivation d'une variable JavaScript
Problème :
Les variables globales en JavaScript peuvent être définies et accessible par plusieurs scripts. Cependant, il peut y avoir des cas où il est nécessaire de supprimer une variable de la portée globale, garantissant que les scripts suivants ne peuvent pas détecter son existence ou sa valeur.
Solution :
Le L'approche correcte pour supprimer une variable JavaScript dépend de la façon dont elle a été initialement définie.
1. Variables définies avec var :
Les variables déclarées à l'aide du mot-clé var ne peuvent pas être supprimées à l'aide de l'opérateur delete. Ils sont rattachés de manière permanente au périmètre global et ne peuvent être supprimés.
var globalVar = 1; delete globalVar; // Returns false console.log(globalVar); // Outputs 1
2. Variables définies sans var :
Les variables créées sans le mot-clé var sont implicitement attachées à l'objet global (généralement la fenêtre). Ils peuvent être supprimés à l'aide de l'opérateur delete.
globalVar = 1; delete globalVar; // Returns true console.log(globalVar); // Throws ReferenceError
Explication technique :
La spécification ECMAScript définit deux types d'environnements dans lesquels les variables sont stockées :
Les variables déclarées avec var sont stockées dans le VariableEnvironment, qui est attaché à la portée actuelle. La suppression de ces variables nécessite l'exécution de code dans un contexte d'évaluation, ce qui n'est généralement pas utilisé dans les environnements basés sur un navigateur.
Les variables définies sans var se trouvent dans le LexicalEnvironment, qui est imbriqué. Si une variable est introuvable dans l'environnement actuel, JavaScript recherche l'environnement parent. En fin de compte, il tente de récupérer une propriété de l'objet global. Les propriétés sur les objets peuvent être supprimées.
Remarques :
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!