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 ?
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