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

qual a diferença de var e let ?

Estou aprendendo programação do zero, nos cursos anteriores de logica de programação, aprendemos a usar o "var" para declarar variáveis, já no curso de jogos clássicos estamos usando o "let" eu testei o "var" no p5.js e funcionou normalmente, não sei se minha pergunta é muito avançada e veríamos isso mais para frente, mas qual a diferença dos dois ? existe alguma convenção de qual usar e em qual momento ? obrigado.

testei o código do p5 no sublime text 3, depois de alguns ajustes funcionou parcialmente, mas de acordo com meus amigos programadores eu "chumbo" muito o código, ou seja, escrevo demais, alguma dica para melhorar minha logica ? obrigado.

4 respostas
solução!

Opa cara beleza? Tive a mesma curiosidade que você e fui pesquisar e achei esses dois artigos, um da propria Alura e um de outro site, espero que te ajude. https://www.alura.com.br/artigos/entenda-diferenca-entre-var-let-e-const-no-javascript https://hcode.com.br/blog/entenda-a-diferenca-entre-var-let-e-const-no-javascript

Ambos falam sobre const também, o que sinceramente também não sei dizer se é algo muito avançado ou não. Espero ter ajudado.

Obrigado Gabriel, eu também estou tentando entender, parece que tem a ver com a estrutura das funções, mas ainda estou achando confuso, mas obrigado!

o chará, da uma olhada aqui.. explica bem

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Grammar_and_types

ex:

antes do ecma (padronização JS) - 6 não existia variável por escopo(Ex: Se vc declara uma variável dentro de um procedimento ou função, vc só pode usar essa variável dentro do próprio procedimento ou função, ou seja, o Escopo dessa variável é Local), ou seja vc tinha que declarar variável uma por uma, ex:

if (true) { var x = 5 }

console.log(x) //5

o var x só funciona dentro do if... declaração em bloco ({ ... }).

ai agora se vc colocar

if (true) { let y = 5 }

console.log(y) //ReferenceError: y não está definido

Pq o let não funciona dentro de declaração em bloco ({ ... }), ele abrange tudo.

Muito obrigado meu chará!!