/ / La variable locale Javascript remplace la variable globale? - javascript, portée, variables globales, variables locales

La variable locale javascript remplace la variable globale? - javascript, scope, variables globales, variables locales

var x = 3;

if(1==1){
if(2==2){
var x= 5;
}
}

document.write(x); // outputs 5

Je faisais donc quelques tests pour mieux comprendre le concept de portée locale et globale. Je pensais déclarer x avec mot-clé var crée une variable locale et ignore toute variable du même nom dans la portée parente. Par ignorer, je veux dire comment je peux changer la variable x sans affecter la même variable dans la portée ci-dessus. Mais apparemment, ma compréhension de la définition des variables js est fausse. pourrait s'il vous plaît expliquer pourquoi il se comporte si?

Réponses:

0 pour la réponse № 1

Accolades ({...}) ne crée pas de place pour var en JavaScript. Alors, quand vous déclarez une variable (x) portant le même nom (x) à l'intérieur {...} il ne crée aucune nouvelle variable mais remplace en réalité la variable précédemment déclarée.


3 pour la réponse № 2

var déclare une variable locale dans une fonction. Pour les variables locales de portée de bloc, utilisez let.

var x = 3;
if(1==1){
if(2==2){
let x = 5;
}
}
console.log(x); // prints 3