Maison >interface Web >js tutoriel >Comment supprimer les variables JavaScript ?

Comment supprimer les variables JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-25 09:56:10194parcourir

How Do I Unset JavaScript Variables?

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 :

  • VariableEnvironment : Stocke les variables définies à l'aide de var et ne peut pas être supprimé.
  • LexicalEnvironment : Stocke les variables définies sans var. Il prend en charge la suppression de propriétés à l'aide de l'opérateur delete.

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 :

  • Les variables définies avec var sont hissées en haut de leur portée, donc même si elles sont initialisées ultérieurement , elles sont toujours considérées comme définies dès le départ.
  • Le mode strict affecte les règles de recherche des variables. En mode strict, les références lexicales qui auraient été résolues en propriétés globales en mode non strict peuvent provoquer des erreurs de « variable non déclaré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!

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