1
resposta

Qual a diferença entre var e let?

Na aula de lógica de programação, as variáveis eram escritas como var, no sublime.

Agora, no p5.js, as variáveis são escritas como let.

Qual a diferença? É o ambiente em que se programa?

Aguardo retorno de que alguém possa me explicar. Obrigada.

1 resposta

Olá! Tudo bem? Em JavaScript temos três jeitos de usar variáveis: com const, let e var. Let e const só foram criadas em 2015, por isso muitos materiais na internet ainda usam somente var. A prática mais indicada é usar somente const ou let, porque as variáveis do tipo var podem acabar gerando alguns problemas:

console.log(mensagem);
var mensagem = "Oi";
var mensagem = "Olá";

O código acima é executado sem erro. As variáveis do tipo var são inicializadas como undefined no começo da execução do código, não importa em que parte do código ela esteja, por isso é possível chamar uma var sem ter atribuído um valor a ela e sem nem ter declarado ela no código, o que seria uma má prática. Outro problema é que uma var tem escopo global, podendo ser acessada em qualquer lugar do código, além disso, elas podem ser declaradas mais de uma vez, como acontece no exemplo acima, e essas duas características são práticas não recomendadas, porque podem acabar gerando confusão em códigos mais complexos.

console.log(mensagem); // dá erro
const mensagem = "Olá";
const mensagem = "Oi"; // dá erro
mensagem = "Oi"; // também dá erro
const numero = 10;
numero += 20; // dá erro

Já uma const, assim como seu nome diz, é constante, não podendo ser declarada mais de uma vez, nem ter seu valor alterado, assim a chance de termos o valor esperado armazenado na const é bem maior. O escopo delas não é global. Ao usar const, nós somos obrigados a seguir essas regras, que vão nos obrigar a seguir práticas mais recomendadas, por isso é preferível usar const ao invés de var.

let mensagem = "Oi";
mensagem = "Olá"; // Não dá erro
let mensagem = "Olá"; // Dá erro
let numero; // Não dá erro
numero = 10;

Por fim, uma let segue a mesma lógica da const, com a diferença de que pode ter seu valor alterado. Assim como uma const, não dá para declarar duas lets com o mesmo nome, então evitamos conflitos de nome que podem acontecer acidentalmente. No geral, é melhor evitar o uso de var e usar ou let, quando temos intenção de alterar seu valor depois, ou const quando não queremos que seu valor mude. Para mais explicações, entre no site https://www.freecodecamp.org/portuguese/news/var-let-e-const-qual-e-a-diferenca