Maison >interface Web >Questions et réponses frontales >Javascript a-t-il une portée au niveau du bloc ?

Javascript a-t-il une portée au niveau du bloc ?

WBOY
WBOYoriginal
2022-03-10 11:41:491993parcourir

En JavaScript, il n'y a pas de concept de portée au niveau du bloc. Les variables définies dans une instruction au niveau du bloc sont en fait créées dans la fonction conteneur plutôt que dans l'instruction. Vous pouvez placer la déclaration de variable en haut du corps de la fonction au lieu de placer la déclaration à proximité de l'endroit où la variable est utilisée.

Javascript a-t-il une portée au niveau du bloc ?

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

Javascript a-t-il une portée au niveau du bloc ?

Javascript n'a pas le concept de portée au niveau du bloc. Cela signifie que les variables définies dans une instruction au niveau du bloc sont en réalité créées dans la fonction conteneur plutôt que dans l'instruction.

Segment de code 1 :

var scope="global";  
function f(){   
    console.log(scope);  
    var  scope="local"  
    console.log(scope);  
}  
f();

 Quel sera le résultat ?

 Réponse : local non défini

 Segment de code 2 :

var scope="global";  
function f(){  
    var scope;  
    console.log(scope);  
    scope="local"  
    console.log(scope);  
}  
f();

 Quel sera le résultat ?

 Réponse : local non défini

 Segment de code 3 :

var scope="global";  
function f(){  
    console.log(scope);  
}  
f();

 Quel sera le résultat ?

 Réponse : global

 À travers les trois exemples ci-dessus, ce qui suit explique la phrase "JavaScript n'a pas de portée au niveau du bloc, mais a une portée de fonction".

 En JavaScript, en raison des caractéristiques de la portée de la fonction, le segment de code 1 et le segment de code 2 sont équivalents. Les variables locales sont définies dans l'ensemble du corps de la fonction

En d'autres termes, le segment de code 1 est dans le corps de la fonction. La portée de la variable couvre la variable globale du même nom, et ce n'est que lorsque le programme exécute l'instruction var que la portée de la variable locale sera véritablement attribuée. Par conséquent, le processus ci-dessus équivaut à : "avancer" la déclaration de variable dans la fonction vers le haut du corps de la fonction, tout en laissant l'initialisation de la variable à la position d'origine : c'est-à-dire le segment de code 2.

 Dans les langages de programmation avec une portée au niveau des blocs, c'est généralement une très bonne habitude de programmation de conserver les déclarations de variables et le code utilisant des variables aussi proches que possible les unes des autres dans une petite portée. Étant donné que JavaScript n'a pas de portée au niveau des blocs, certains programmeurs placent intentionnellement les déclarations de variables en haut des corps de fonction au lieu de placer les déclarations à proximité de l'endroit où les variables sont utilisées. Cette approche

fait que leur code source reflète très clairement l'étendue variable des connaissances.

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