1
resposta

[Projeto] Questão Faça como eu fiz: variáveis JS, Atividade 10

// Declarando uma variável com let (permite reatribuição)
// O propósito aqui é armazenar a idade do usuário, que pode mudar.
let idade = 26; 
let nomeUsuario = "Gabriel";
let NomeUsuario = "Rodrigues Ribeiro"; 
// VAR: Escopo de função/global (evite usar no JS moderno)
var cidade = "Imperatriz";
console.log("Idade inicial:", idade);

// Alterando o valor da variável
idade = 27; 
console.log("Idade após meu Aniversário:", idade);
console.log("Tipo da variável idade:", typeof idade);

// Demonstração de Case Sensitivity (Sensibilidade a maiúsculas/minúsculas)
// São variáveis diferentes para o JavaScript
console.log(nomeUsuario, NomeUsuario);
console.log("Cidade: ", cidade)
console.log("Tipo da variável cidade:", typeof cidade);

// LET: Escopo de bloco e permite reatribuição
let statusLogin = true;
statusLogin = false; // Permitido

// CONST: Escopo de bloco e NÃO permite reatribuição
const cpf = "123.253.852-65";
console.log("CPF: ", cpf)
cpf = "236.582.36-96"
// Tentativa de erro (Comentada para o script não quebrar):
// cpf = "000.000.000-00"; // Erro: TypeError: Assignment to constant variable.
// Correção: Se o valor precisa mudar, use 'let'. Se for fixo, mantenha 'const'.

// --- Teste com VAR ---
console.log("Valor de 'testeVar' antes de declarar:", testeVar); 
var testeVar = "Vamos ver no que vai dar";
// Resultado: undefined (A declaração sobe, mas o valor não).

// --- Teste com LET e CONST ---
try {
    console.log(TestLet);
    let TestLet = "Possível erro";
} catch (e) {
    console.log("Erro no hoisting do let:", e.message);
    // Resultado: "Cannot access 'TestLet' before initialization"
    // Elas sofrem hoisting, mas entram na "Zona Temporal Morta".
}

1 resposta

Olá, estudante, como vai?

O seu código demonstra uma excelente compreensão sobre o funcionamento das variáveis em JavaScript, especialmente no que diz respeito ao escopo e ao comportamento de hoisting. É muito positivo notar que você explorou a diferença prática entre var, let e const, além de ter testado a sensibilidade a maiúsculas e minúsculas, que é um conceito fundamental para evitar erros de referência no desenvolvimento.

Uma dica útil ao trabalhar com constantes é lembrar que, embora o identificador não possa ser reatribuído, em objetos ou arrays declarados com const, as propriedades internas ou elementos ainda podem ser modificados.

Obrigado por compartilhar seu exercício no fórum e parabéns pela dedicação nos testes de erro. Continue praticando e postando sua evolução por aqui.

Para saber mais:

Sugestão de conteúdo:

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!