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

Diferença de Declaração de Vaiaveis (Var/Const/Let)

Oi,

Aprendi desde sempre que para declarar as variaveis no JS é com o "var". Nestas ultimas aulas conheci o const e let.

Mas qual a diferença dos três? vi que podemos apenas chamar "qualquerVariavel = 10" sem ter que declarar nenhuma das tres.

Aqora to quase bugando aqui pra entender a diferença e convenção disso.

obg

2 respostas
solução!

a const é usada quando sua variável não vai sofrer nenhuma alteração, como o próprio nome sugere, ele é constante.

a var e a let tem um comportamento bem semelhante, com uma diferença crucial, vou te explicar melhor com esse exemplo abaixo:

{
    var nome = 'Joana';
    let idade = 19
}

nesse exemplo, o let permanece apenas nesse escopo, ou seja, ele só existe dentro do objeto!

já a var, ela sofre o que chamamos de hoisting. o javascript por debaixo dos panos, eleva as var do código para o começo do arquivo. Faz o teste pra você ver o resultado agora:

console.log(nome)
console.log(idade)

 {
    var nome = 'Joana';
    let idade = 19
}

nesse outro exemplo, a var nome vai aparecer no console como undefined, porque é como se no começo do código estivesse escrito: "var nome". Ou seja, o JS eleva sua variável para o escopo global mas sem o valor que você atribuiu.

ja a let vai dar um erro de referência (Uncaught ReferenceError: idade is not defined ) pois ele n sofre a elevação.

Para entender mais a fundo, te recomendo pesquisar sobre scope e hoisting, vai ficar bem mais claro! :)

ah, e é uma boa prática usar o let, o var é mais propício a causar erros na aplicação

espero ter ajudado :D

Testei. Entendi que basicamente é:

var variavel global que pode ser redefinida;

let variavel local que PODE ser redefinida somente dentro do proprio escopo (função);

const variavel local constante que NAO PODE ser redefinida. Funciona somente dentro do próprio escopo (função)




 {
    var dia = 10;
    let mes = 11;
    const ano = 1212;

console.log(mes)
console.log(ano)
}

console.log(dia)

Muito Obrigado Thiago...