Boa noite Professor, tudo bem ? Na parte do código: "let contador = 0 contador = contador +1"
Por realizar uma redeclaração em "contador" sem especificar o tipo de variável ele acaba perdendo o let e tornando-se um tipo global ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa noite Professor, tudo bem ? Na parte do código: "let contador = 0 contador = contador +1"
Por realizar uma redeclaração em "contador" sem especificar o tipo de variável ele acaba perdendo o let e tornando-se um tipo global ?
Oi, Gustavo
Não vai se tornar um tipo global
Dentro do escopo que a variável do tipo "let" foi criada, ela pode ser reescrita, mas não pode ser redeclarada
| Escopo global | Escopo de função | Escopo de bloco | Reescrita | Redeclarada | Hoisted | |
|---|---|---|---|---|---|---|
| var | Visível globalmente | Visível dentro da função | Não visível | Permitida | Permitida | Sim (elevada ao topo do escopo) |
| let | Não visível | Visível dentro da função | Visível dentro do bloco | Permitida | Não permitida | Não |
| const | Não visível | Visível dentro da função | Visível dentro do bloco | Não permitida | Não permitida | Não |
// exemplo do let
function exemploLet() {
if (true) {
let x = 10; // Declaração usando let dentro de um bloco
console.log(x); // 10 - Acesso dentro do mesmo bloco
}
console.log(x); // Erro - A variável x não é visível fora do bloco
}
exemploLet();
Olá Luis, tudo bem ? Muito obrigado pela ajuda, para eu entender melhor sobre a questão da visibilidade em bloco usei esse exemplo que eu fiz:
for(let x = 0; 10 >= x; x++){ console.log(x); } console.log(x); // vazio pois foi declarado dentro do For