


Comment déclarer la portée d'une variable JS ? Explication détaillée des exemples de portée dans les fonctions
La portée d'une variable fait référence à la visibilité de la variable, tandis que le cycle de vie (période de survie) examine la variable sous un autre angle.
La portée des variables dans JS est divisée en variables globales et variables locales. Celles définies dans la fonction sont appelées variables locales, et celles définies en dehors de la fonction sont appelées variables globales. ("Les choses en dehors d'une fonction sont appelées variables globales" sont relatives. Le principe discuté ici est que les variables sont explicitement déclarées avec var. Les variables définies sans var dans une fonction sont des variables globales par défaut. Bien sûr, déclarer des variables sans var est mal vu. ).
var glob = 4;//函数外声明全局变量 function fun() { var height = 20; //函数内用var声明的是局部变量 weight = 50; //函数内不用var声明的是全局变量 } fun(); alert(weight);
Il n'y a pas de portée au niveau du bloc dans JS, c'est-à-dire qu'elle est entourée d'accolades {}. Il y en a en Java. Écrivez le code suivant dans la méthode principale
public static void main(String... args) { for(int i=0;i<5;i++) { } { int j=10; } int z = 20; System.out.println(i); // i不可见,语法分析时报错,即编译不通过 System.out.println(j); // j不可见,语法分析时报错,即编译不通过 System.out.println(z); // z可见,输出20 }
mais si en JS
for(var i=0;i<5;i++) { } var obj = {name:"Lily"}; for(var attr in obj) { } { var j=10; } alert(i);//输出4,没有块级作用域 alert(attr); //输出name,没有块级作用域 alert(j);//输出10,没有块级作用域
cela illustre également un problème, évitez d'utiliser une boucle for dans la portée globale et déclarez les variables à la en même temps, sinon cela entraînerait une pollution de la portée globale de la dénomination.
Bien sûr, JS1.7 a proposé le mot-clé let pour déclarer les variables, qui ne s'applique qu'à la portée de l'instruction for.
for(let i=0;i<5;i++) { //todo } alert(i);//运行时报错,提示i未定义
Exemple de portée des variables dans une fonction js :
<html> <head> </head> <body> <script type="text/javascript"> var a = 5; var c = 3; function t(){ var a = 6; var b = 10; document.write(a+'-----'+b); document.write(c); } t(); </script> </body> </html>
Différent de php, si vous souhaitez appeler une variable dans une fonction js, il la recherche d'abord dans le fonction. Par exemple, dans l'exemple, a est égal à 6 ; mais c est introuvable dans le corps de la fonction, donc il recherchera en dehors du corps de la fonction. S'il le trouve, il sera appelé. signalera une erreur.
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!

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



typedef struct est utilisé en langage C pour créer des alias de type de structure afin de simplifier l'utilisation des structures. Il crée un alias pour un nouveau type de données sur une structure existante en spécifiant l'alias de la structure. Les avantages incluent une lisibilité améliorée, la réutilisation du code et la vérification du type. Remarque : La structure doit être définie avant d'utiliser un alias. L'alias doit être unique dans le programme et valide uniquement dans le périmètre dans lequel il est déclaré.

Les exceptions de valeur attendue des variables en Java peuvent être résolues en : initialisant les variables ; en utilisant des valeurs par défaut ; en utilisant des contrôles et des affectations et en connaissant la portée des variables locales ;

La directive de préprocesseur #include en C++ insère le contenu d'un fichier source externe dans le fichier source actuel, en copiant son contenu à l'emplacement correspondant dans le fichier source actuel. Principalement utilisé pour inclure des fichiers d'en-tête contenant les déclarations nécessaires dans le code, telles que #include <iostream> pour inclure des fonctions d'entrée/sortie standard.

Les avantages des fermetures JavaScript incluent le maintien d'une portée variable, l'activation du code modulaire, l'exécution différée et la gestion des événements ; les inconvénients incluent les fuites de mémoire, la complexité accrue, la surcharge de performances et les effets de chaîne de portée.

Cycle de vie des pointeurs intelligents C++ : Création : Les pointeurs intelligents sont créés lors de l'allocation de mémoire. Transfert de propriété : Transférer la propriété via une opération de déménagement. Libération : la mémoire est libérée lorsqu'un pointeur intelligent sort de la portée ou est explicitement libéré. Destruction d'objet : lorsque l'objet pointé est détruit, le pointeur intelligent devient un pointeur invalide.

Peut. C++ autorise les définitions et les appels de fonctions imbriquées. Les fonctions externes peuvent définir des fonctions intégrées et les fonctions internes peuvent être appelées directement dans la portée. Les fonctions imbriquées améliorent l'encapsulation, la réutilisabilité et le contrôle de la portée. Cependant, les fonctions internes ne peuvent pas accéder directement aux variables locales des fonctions externes et le type de valeur de retour doit être cohérent avec la déclaration de la fonction externe. Les fonctions internes ne peuvent pas être auto-récursives.

En JavaScript, les types de pointage de this incluent : 1. Objet global ; 2. Appel de fonction ; 3. Appel de constructeur 4. Gestionnaire d'événements 5. Fonction de flèche (héritant de this). De plus, vous pouvez définir explicitement ce que cela désigne à l'aide des méthodes bind(), call() et apply().

Dans Vue, il existe une différence de portée lors de la déclaration de variables entre let et var : Scope : var a une portée globale et let a une portée au niveau du bloc. Portée au niveau du bloc : var ne crée pas de portée au niveau du bloc, let crée une portée au niveau du bloc. Redéclaration : var permet de redéclarer les variables dans la même portée, ce qui n'est pas le cas.
