Je consensez une variable dans une instruction IF mais je ne peux pas utiliser la variable hors de l'instruction
p>
const a = 1
const b = 1
if (a == b) {
const c = 1
console.log(c)
}
console.log(c)4 Réponses :
in javascript let, const code> utilise le blocage des blocs + celles-ci sont des types spéciaux que
Ici, vous essayez d'accéder au 'c' code> qui n'est pas disponible dans la portée et que vous obtenez une erreur. P>
Si vous déclarez p> C code> à l'intérieur si la condition ne sera pas accessible de si code> et que vous ne pouvez pas faire c comme const code>, parce que vous Doit avoir une valeur lorsque vous déclarez une variable const code> et que vous ne pouvez donc pas modifier à nouveau C code> à l'intérieur 'si' const a = 1
const b = 1
var c=1;
if (a == b ){
c = 1
console.log(c)
}
console.log(c)
C'est juste parce que c'est code> étendue code>, dans ce cas, p> c code> est disponible dans si code> bloque uniquement si vous le souhaitez à l'extérieur, alors vous devez Déclarer C code> avec laisse code> const a = 1;
const b = 1
let c = null;
if (a === b) {
c = 1;
console.log(c);
}
console.log(c);
Vous pouvez également le déclarer avant de laisser et de changer sa valeur plus tard sur: ou écrire une fonction qui renvoie une valeur basée sur l'autre const. p> const a = 1
const b = 1
let c = myFunction();
function myFunction() {
if (a == b ){
return 1
}
}
console.log(c)
C'est parce que
const code> A> a bloqué la portée, vous pouvez le déclarer commevar code> ou le déclarer en dehors dusi code> initialement à l'aide delaisse code>, puis l'initialise dans lesi code>Il est vraiment bloqué. Signification; Ce n'est pas accessible en dehors du
{} code>. Si vous souhaitez faire quelque chose à l'intérieur de l'instruction IF, vous pouvez utiliserlaisser code> en dehors du si et réaffecter la valeur dans l'instruction de condition