recherche
Maisoninterface WebQuestions et réponses frontalesQuelle est la portée en javascript

Quelle est la portée en javascript

Jan 18, 2022 pm 05:50 PM
javascript作用域

En JavaScript, la portée est la plage accessible de variables (objets, fonctions) et la plage effective de variables qui peuvent être lues et écrites dans le code de script ; la portée peut contrôler la visibilité et le cycle de vie des variables.

Quelle est la portée en javascript

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

Presque tous les langages ont le concept de portée. En termes simples, Scope est la portée accessible d'une variable, c'est-à-dire que la portée contrôle la visibilité et le cycle de vie de la variable.

En JavaScript, les objets et les fonctions sont également des variables.

Avant ECMAScript6, la portée des variables était principalement divisée en portée globale et portée locale (également appelée portée de fonction) ; dans ECMAScript6 et après, la portée des variables était principalement divisée en portée globale et portée locale. Il existe trois types : portée au niveau du domaine et du bloc.

Les variables dans les portées correspondantes sont appelées respectivement variables globales, variables locales et variables au niveau du bloc.

  • Les variables globales sont déclarées en dehors de toutes les fonctions ;

  • Les variables locales sont des variables déclarées dans le corps de la fonction ou dans les paramètres nommés de la fonction

  • Les variables de niveau bloc sont des variables déclarées dans le bloc, uniquement dans les paramètres valides ; dans le bloc.

La portée d'une variable est étroitement liée à la méthode de déclaration. Les variables déclarées à l'aide de var ont une portée globale et une portée de fonction, et il n'y a pas de portée au niveau du bloc ; les variables déclarées à l'aide de let et const ont une portée globale, une portée locale et une portée au niveau du bloc.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<script>
			var v1 = "JavaScript"; //全局变量
			let v2 = "JScript"; //全局变量
			let v3 = "Script"; //全局变量
			scopeTest(); //调用函数
			function scopeTest() {
				var lv = "aaa"; //局部变量
				var v1 = "bbb"; //局部变量
				let v2 = "ccc"; //局部变量
				if (true) {
					let lv = "123"; //块级变量
					console.log("块内输出的lv = " + lv); //123
				}
				console.log("函数体内输出的lv = " + lv); //aaa
				console.log("函数体内输出的v1 = " + v1); //bbb
				console.log("函数体内输出的v2 = " + v2); //ccc
				console.log("函数体内输出的v3 = " + v3); //Script
				//v4为全局变量,赋值在后面,因而值为undefined
				console.log("函数体内输出的v4 = " + v4);
			}
			var v4 = "VBScript"; //全局变量
			console.log("函数体外输出的lv = " + lv); //① 报ReferenceError错误
			console.log("函数体外输出的v1 = " + v1); //JavaScript
			console.log("函数体外输出的v2 = " + v2); //JScript
			console.log("函数体外输出的v3 = " + v3); //Script
			console.log("函数体外输出的v3 = " + v4); //VBScript
		</script>
	</body>
</html>

Le code de script ci-dessus déclare respectivement 4 variables globales, 3 variables locales et 1 variable de niveau bloc. En dehors de la fonction scopeTest, les variables v1, v2, v3 et v4 sont des variables globales ; dans le corps de la fonction scopeTest, lv et v2 sont des variables globales dans le bloc de jugement if, lv est une variable au niveau du bloc ;

Nous voyons que les variables locales v1 et v2 ont les mêmes noms que les variables globales v1 et v2. Dans le corps de la fonction scopeTest, les variables locales v1 et v2 sont valides, donc les résultats de sortie de ces deux variables dans le corps de la fonction sont "bbb". " et "ccc" respectivement. "; En dehors du corps de la fonction, les variables globales v1 et v2 sont valides, donc en dehors du corps de la fonction, les résultats de sortie de ces deux variables sont respectivement "JavaScript" et "JScript".

De plus, la variable de niveau bloc lv et la variable locale lv ont le même nom dans le bloc de jugement if, la variable de niveau bloc lv est valide, donc le résultat de sortie dans le bloc est "123", alors qu'il est à l'extérieur. le bloc, la variable locale lv est valide et la variable lv Le résultat de sortie est "aaa".

De plus, les variables globales v3 et v4 ne sont pas écrasées dans le corps de la fonction, donc la valeur de la variable globale est sortie, donc le résultat de sortie de v3 à l'intérieur du corps de la fonction et à l'extérieur du corps est "Script", tandis que le l'affectation de la variable v4 est dans l'appel de fonction, donc le résultat de sortie de v4 dans le corps de la fonction est "indéfini", et la sortie en dehors du corps de la fonction est après la déclaration, donc le résultat est "VBScript". lv est une variable locale, donc y accéder en dehors de la fonction signalera une erreur "ReferenceError".

Une fois le code ci-dessus exécuté dans le navigateur Chrome, ouvrez la console du navigateur et vous pourrez voir le résultat comme indiqué ci-dessous.

Quelle est la portée en javascript

La raison de l'erreur à la ligne 28 :

La variable lv est une variable locale et n'est pas valide après avoir quitté la fonction. Commentez cette ligne de code puis exécutez-la. À ce moment, ouvrez la console du navigateur et vous verrez :

Quelle est la portée en javascript

[Recommandations associées : Tutoriel d'apprentissage Javascript]

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
React à l'intérieur de HTML: intégration JavaScript pour les pages Web dynamiquesReact à l'intérieur de HTML: intégration JavaScript pour les pages Web dynamiquesApr 16, 2025 am 12:06 AM

Pour intégrer React dans HTML, suivez ces étapes: 1. Introduisez React et Reactdom dans les fichiers HTML. 2. Définissez un composant réact. 3. Rendez le composant en éléments HTML en utilisant Reactdom. Grâce à ces étapes, les pages HTML statiques peuvent être transformées en expériences interactives dynamiques.

Les avantages de la réaction: performance, réutilisabilité, et plusLes avantages de la réaction: performance, réutilisabilité, et plusApr 15, 2025 am 12:05 AM

La popularité de React comprend son optimisation des performances, sa réutilisation des composants et un écosystème riche. 1. L'optimisation des performances réalise des mises à jour efficaces via DOM virtuel et les mécanismes de diffusion. 2. La réutilisation des composants réduit le code en double par les composants réutilisables. 3. L'écosystème riche et le flux de données unidirectionnel améliorent l'expérience de développement.

React: Création d'interfaces utilisateur dynamiques et interactivesReact: Création d'interfaces utilisateur dynamiques et interactivesApr 14, 2025 am 12:08 AM

React est l'outil de choix pour construire des interfaces utilisateur dynamiques et interactives. 1) La composante et JSX font la division et la réutilisation de l'interface utilisateur simple. 2) La gestion de l'État est implémentée via le crochet USESTATE pour déclencher des mises à jour de l'interface utilisateur. 3) Le mécanisme de traitement des événements répond à l'interaction des utilisateurs et améliore l'expérience utilisateur.

React vs frameworks backend: une comparaisonReact vs frameworks backend: une comparaisonApr 13, 2025 am 12:06 AM

React est un cadre frontal pour la construction d'interfaces utilisateur; Un framework back-end est utilisé pour créer des applications côté serveur. React fournit des mises à jour d'interface utilisateur composentisées et efficaces, et le framework backend fournit une solution de service backend complète. Lors du choix d'une pile technologique, les exigences du projet, les compétences en équipe et l'évolutivité doivent être prises en compte.

HTML et REACT: La relation entre le balisage et les composantsHTML et REACT: La relation entre le balisage et les composantsApr 12, 2025 am 12:03 AM

La relation entre HTML et React est le cœur du développement frontal, et ils créent conjointement l'interface utilisateur des applications Web modernes. 1) HTML définit la structure et la sémantique du contenu, et React construit une interface dynamique par la composontisation. 2) Les composants réagis utilisent la syntaxe JSX pour intégrer HTML pour réaliser un rendu intelligent. 3) Le cycle de vie des composants gère le rendu HTML et se met à jour dynamiquement en fonction de l'état et des attributs. 4) Utilisez des composants pour optimiser la structure HTML et améliorer la maintenabilité. 5) L'optimisation des performances comprend l'évitement du rendu inutile, l'utilisation des attributs clés et la maintenance de la responsabilité unique du composant.

React and the frontend: construire des expériences interactivesReact and the frontend: construire des expériences interactivesApr 11, 2025 am 12:02 AM

React est l'outil préféré pour construire des expériences frontales interactives. 1) Réagir simplifie le développement de l'interface utilisateur par la composontisation et le DOM virtuel. 2) Les composants sont divisés en composants de fonction et composants de classe. Les composants de fonction sont plus simples et les composants de la classe fournissent plus de méthodes de cycle de vie. 3) Le principe de travail de React repose sur le DOM virtuel et l'algorithme de réconciliation pour améliorer les performances. 4) La gestion de l'État utilise USESTATE ou This. State, et des méthodes de cycle de vie telles que ComponentDidMount sont utilisées pour une logique spécifique. 5) L'utilisation de base comprend la création de composants et la gestion de l'état, et l'utilisation avancée implique des crochets personnalisés et une optimisation des performances. 6) Les erreurs courantes incluent les mises à jour de statut et les problèmes de performance inappropriés, les compétences de débogage comprennent l'utilisation de Reactdevtools et d'excellents

React et la pile frontale: les outils et les technologiesReact et la pile frontale: les outils et les technologiesApr 10, 2025 am 09:34 AM

React est une bibliothèque JavaScript pour la construction d'interfaces utilisateur, avec ses composants principaux et sa gestion de l'État. 1) Simplifiez le développement de l'interface utilisateur par la composontisation et la gestion de l'État. 2) Le principe de travail comprend la réconciliation et le rendu, et l'optimisation peut être mise en œuvre via React.Memo et UseMemo. 3) L'utilisation de base est de créer et de rendre des composants, et l'utilisation avancée comprend l'utilisation de crochets et de contextapi. 4) Erreurs courantes telles que la mise à jour du statut incorrect, vous pouvez utiliser ReactDevTools pour déboguer. 5) L'optimisation des performances comprend l'utilisation de React.Memo, des listes de virtualisation et de la circulation des codes, et la maintenance de code et maintenable du code est la meilleure pratique.

Le rôle de React dans HTML: Amélioration de l'expérience utilisateurLe rôle de React dans HTML: Amélioration de l'expérience utilisateurApr 09, 2025 am 12:11 AM

React combine JSX et HTML pour améliorer l'expérience utilisateur. 1) JSX incorpore du HTML pour rendre le développement plus intuitif. 2) Le mécanisme DOM virtuel optimise les performances et réduit les opérations DOM. 3) Interface utilisateur de gestion basée sur les composants pour améliorer la maintenabilité. 4) La gestion des états et le traitement des événements améliorent l'interactivité.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.