Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Nesse caso o 'let' não vai entrar na condição If?

let idade = 18;
let temCarteira = true;

if(idade >= 18 && temCarteira) {
    let msg = 'Pode dirigir';
    console.log(msg);
}
alert(msg); // undefined, porque `msg` foi declarada com `let` dentro do bloco do `if`.
2 respostas
solução!

Boa tarde Ernani,

Ao executar o código, com estes dados, ele entra no if sim.

Provavelmente, você reparou que imprimiu no console Pode dirigir.

Contudo, a mensagem não vai aparecer em um alerta pois, mesmo entrando no if, o escopo da variável msg é apenas o do if. Ou seja, mesmo que entre no if, ao terminá-lo, a variável msg deixa de existir.

Espero tê-lo ajudado. Avisa aí se ficou claro.

Abraço.

Boa noite, Ernani! Como vai?

O seu código até entrar dentro do bloco if, mas o let cria variáveis com o chamado escopo léxico. Diferentemente das variáveis declaradas com var, as criadas com o let existirão apenas dentro do bloco onde elas foram criadas, ou seja, a sua variável msg existe apenas dentro do if, por isso que ao chegar no alert(msg) é exibido undefined.

Deu pra pegar a ideia?

Grande abraço e bons estudos!