


JavaScript montre la différence entre les variables globales et les variables globales implicites
Cet article présente principalement la différence entre les variables globales d'affichage javascript et les variables globales implicites. Les amis dans le besoin peuvent s'y référer
En JavaScript, il existe deux façons de déclarer des variables globales
Utilisez var pour afficher les variables globales déclarées
Variables globales implicites déclarées sans var
La différence entre les deux Cela dépend s'il peut être supprimé via l'opérateur de suppression
Premier coup d'oeil à un morceau de code
var a = 'a'; // 显式声明的全局变量 b = 'b'; // 隐式声明的全局变量 console.log(a); // a console.log(b); // b console.log(window.a); // a console.log(window.b); // b
En js, les variables globales sont en fait attribut global object (window ), afin que les variables globales déclarées des deux manières puissent être obtenues via window
Essayez d'utiliser delete pour supprimer
// 显式声明的全局变量不能被删除 delete a; // 返回 false // 隐式声明的全局变量可以被删除 delete b; // 返回 true // 删除情况 console.log(typeof a); // string console.log(typeof b); // undefined
L'opérateur delete peut supprimer les attributs d'un objet, mais si l'attribut est un attribut non configurable, false sera renvoyé lors de la suppression (une exception sera levée en mode strict)
Cela signifie que les variables déclarées à l'aide de var ne sont pas configurables. Utilisez getOwnPropertyDescriptor pour obtenir l'objet décrivant les caractéristiques de la propriété afin de vérifier cela
Object.getOwnPropertyDescriptor(window, a); // {value: "a", writable: true, enumerable: true, configurable: false} Object.getOwnPropertyDescriptor(window, b); // {value: "b", writable: true, enumerable: true, configurable: true}
Les deux La différence fondamentale. est que les variables explicitement déclarées ne sont pas configurables et ne peuvent pas être supprimées via l'opérateur delete
Il est à noter qu'une fois que la valeur configurable est fausse, l'objet décrivant les caractéristiques de l'attribut ne peut pas être modifié, donc le descripteur d'attribut ne peut pas être modifié. Cela permet de supprimer les variables globales explicitement déclarées par delete, mais permet à l'inverse de ne pas supprimer les variables globales implicitement déclarées par delete
b = 'b'; var descriptor = Object.getOwnPropertyDescriptor(window, b); descriptor.configurable = false; Object.defineProperty(window, b, descriptor); delete b; // 返回 false
suite aux suppléments. d'autres internautes
Variables globales et variables globales implicites en JavaScript
Il existe quelques petites différences entre les variables globales implicites et les variables globales explicitement définies, qui consistent à utiliser l'opérateur de suppression pour rendre les variables indisponibles . Capacités définies.
1. Les variables globales créées via var (créées dans tout programme autre que les fonctions) ne peuvent pas être supprimées.
2. Les variables globales implicites créées sans var (qu'elles soient créées ou non dans une fonction) peuvent être supprimées.
Cela montre que, techniquement, les variables globales implicites ne sont pas vraiment des variables globales, mais ce sont des propriétés de l'objet global. Les attributs peuvent être supprimés via l'opérateur delete, mais les variables ne peuvent pas :
// 定义三个全局变量 var global_var = 1; global_novar = 2; // 反面教材 (function () { global_fromfunc = 3; // 反面教材 }()); // 试图删除 delete global_var; // false delete global_novar; // true delete global_fromfunc; // true // 测试该删除 typeof global_var; // "number" typeof global_novar; // "undefined" typeof global_fromfunc; // "undefined"
Dans le navigateur, l'objet global peut être utilisé dans le code via la fenêtre attribut Accès depuis n'importe quel endroit (sauf si vous faites quelque chose de scandaleux, comme déclarer une variable locale nommée window). Mais dans d'autres contextes, cette propriété de commodité pourrait être appelée autrement (ou même ne pas être disponible dans le programme). Si vous devez accéder à l'objet global sans identifiant de fenêtre codé en dur, vous pouvez effectuer les opérations suivantes dans la portée de la fonction à n'importe quel niveau :
var global = (function () { return this; }());
Ceci La méthode peut obtenir l'objet global à tout moment, car elle est appelée en tant que fonction dans la fonction (non construite via new), et cela pointe toujours vers l'objet global. En fait, ce bug ne s'applique pas au mode strict d'ECMAScript 5, vous devez donc prendre une forme différente en mode strict. Par exemple, si vous développez une bibliothèque JavaScript, vous pouvez envelopper votre code dans une fonction immédiate, puis lui transmettre une référence depuis la portée globale en tant que paramètre de votre fonction immédiate.
Ce qui précède est la différence entre les variables globales d'affichage javascript et les variables globales implicites. La différence fondamentale entre les deux est que les variables explicitement déclarées ne sont pas configurables et ne peuvent pas être supprimées via l'opérateur de suppression
Plus javascript display Pour les articles connexes sur la différence entre les variables globales et les variables globales implicites, veuillez faire attention au site Web PHP chinois !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

La différence entre les variables locales C++ et les variables globales : Visibilité : les variables locales sont limitées à la fonction de définition, tandis que les variables globales sont visibles dans tout le programme. Allocation de mémoire : les variables locales sont allouées sur la pile, tandis que les variables globales sont allouées dans la zone de données globales. Portée : les variables locales se trouvent dans une fonction, tandis que les variables globales se trouvent dans tout le programme. Initialisation : les variables locales sont initialisées lorsqu'une fonction est appelée, tandis que les variables globales sont initialisées au démarrage du programme. Récréation : les variables locales sont recréées à chaque appel de fonction, tandis que les variables globales ne sont créées qu'au démarrage du programme.

Le langage go n'a pas de variables globales statiques. Il utilise une manière plus flexible de gérer le besoin de variables globales. Les variables globales sont généralement déclarées au niveau du package, c'est-à-dire les variables déclarées en dehors de la fonction. . sont visibles et peuvent être utilisés dans n’importe quelle fonction du package.

La signification chinoise de request est "request". Il s'agit d'une variable globale en PHP et c'est un tableau contenant "$_POST", "$_GET" et "$_COOKIE". La variable "$_REQUEST" peut obtenir des données et des informations COOKIE soumises par POST ou GET.

À mesure que JavaScript devient de plus en plus populaire, de plus en plus de sites Web et d'applications s'appuient sur JavaScript. Cependant, l'utilisation de variables globales en JavaScript peut poser des problèmes de sécurité. Dans cet article, je vais vous présenter comment implémenter la sécurité des variables globales en JavaScript. La meilleure façon d’éviter d’utiliser des variables globales est d’éviter d’utiliser des variables globales. En JavaScript, toutes les variables sont globales par défaut sauf si elles sont déclarées dans une fonction. Par conséquent, les variables locales doivent être utilisées autant que possible

Golang est un langage de programmation fortement typé avec des fonctionnalités telles que l'efficacité, la simplicité et la concurrence, il est donc progressivement favorisé par de plus en plus de développeurs. Dans le développement de Golang, les variables globales et locales des fonctions impliquent souvent des problèmes de concurrence entre les données. Cet article analysera le problème de compétition de données entre variables globales et variables locales dans les fonctions Golang du point de vue du codage réel. 1. Compétition des données pour les variables globales Les variables globales Golang sont accessibles dans toutes les fonctions, donc si une conception et un codage rigoureux ne sont pas effectués

Nous verrons comment C et C++ se comportent différemment lors de la redéclaration d'une variable globale sans initialisation, de la redéclaration d'une variable globale avec initialisation, et de la redéclaration d'une variable globale et de son initialisation deux fois. De plus, nous répéterons la combinaison ci-dessus en utilisant des variables locales. 1.A) Programme C : re-déclarez les variables globales sans initialisation #include<stdio.h>intvar;intvar;intmain(){ printf("Var=%d",var); return0;} output Var=0B) C++ programme:

Oui, les fonctions Go dans Goroutine ont un accès direct aux variables globales par défaut. Raison : Goroutine hérite de l'espace mémoire du Goroutine qui l'a créé, y compris l'accès aux variables globales.

Les variables globales PHP incluent : 1. $_SERVER, la super variable globale du serveur et les informations sur l'environnement d'exécution sur lequel le script actuel est exécuté ; 2. $_GET, un tableau associatif de variables transmis au script actuel via la méthode GET ; . $_POST, via la méthode POST Un tableau associatif de variables transmis au script actuel ; 4. $_SESSION, qui stocke les informations relatives à l'utilisateur dans la session en cours ; 5. $_COOKIE, un tableau associatif de variables transmis au script actuel ; via les cookies HTTP ; 6. $_FILES, etc.
