Bom dia Alura. Após assistir os vídeos e ler alguns materiais sobre JavaScript, continuo com dúvidas sobre alguns conceitos como: variáveis, as declarações (var, let e const), o hoisting. Podem me ajudar?
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!
Bom dia Alura. Após assistir os vídeos e ler alguns materiais sobre JavaScript, continuo com dúvidas sobre alguns conceitos como: variáveis, as declarações (var, let e const), o hoisting. Podem me ajudar?
Variáveis são espaços na memória para guardar dados. Em JavaScript, usamos var, let ou const para criar variáveis.
let: Pode mudar o valor e é limitada ao escopo de bloco, ou seja, só existe dentro de {} onde foi declarada (como em if, for, funções, etc).
Observação: é a forma mais segura e recomendada para declarar variáveis que mudam de valor.
const: NÃO pode mudar o valor. Uma vez atribuído, o valor não pode ser alterado exceto no caso de objetos e arrays, onde o conteúdo pode ser alterado, mas não a referência (se não viu sobre isso ainda, verá no futuro), e também é limitada ao escopo de bloco.
Observação: use const sempre que a variável não precisar ser reatribuída. É uma boa prática para garantir segurança no código.
var: Pode mudar o valor e é limitada ao escopo de função, ou seja, só existe dentro da função onde foi declarada.
Observação: var é depreciaded porque pode causar comportamentos confusos, especialmente em blocos de código e laços. Em todo caso, não use-o
É o comportamento do JavaScript de "levantar" as declarações de variáveis e funções para o topo do código durante a execução.
var: a variável é içada com valor undefined.console.log(a); // undefined
var a = 5;
let e const: a variável é içada, mas não pode ser usada antes da declaração. Isso gera erro.console.log(b); // Erro!
let b = 10;
Não comprendo muito sobre Hoisting, mas esperado ter ajudado.
Agradecida Emanuel Reis. consegui compreender melhor!