Oi João!
O JavaScript tem algumas características muito diferentes de outras linguagens comerciais; uma delas, por exemplo, é a possibilidade de executar o código abaixo sem dar nenhum erro:
var numero = 1;
var numero = 2;
// o valor atual da variável numero é 2
Porém, isso só é possível utilizando a palavra-chave var
. Já o código abaixo, que utiliza a palavra-chave let
para criação de variáveis, já nos retorna um erro:
let numero = 1;
let numero = 2;
Uncaught SyntaxError: Identifier 'x' has already been declared
// o texto acima pode mudar um pouco dependendo do seu navegador, mas é sempre um "SyntaxError", um erro de sintaxe, que diz que a variável numero já foi declarada - ou seja, já existe uma variável com este nome.
Embora o nome seja "variável", normalmente a melhor prática é apenas permitir que seu valor seja modificado (ou seja, que uma variável tenha seu valor redeclarado) quando é realmente necessário, por exemplo em laços de repetição. Em grande parte das vezes, a partir do momento em que declaramos uma variável e atribuímos valor a ela, este valor não é mais modificado durante a execução de um programa ou de uma função.
Independente de querermos ou não modificar o valor de uma variável, a primeira opção não é usual entre linguagens de programação e não deve ser usada, pois devemos criar (declarar) as variáveis com um nome único, apenas uma vez. Ou seja, sempre que precisar redeclarar o valor de uma variável, utilize a forma:
var numero = 0;
numero = 1;
As formas let
e const
para se escrever variáveis são mais recentes. Quando o JS foi lançado contava somente com a forma var
, mas durante o desenvolvimento da linguagem foi-se percebendo que essa "permissividade" do var
era um prato cheio para o surgimento de bugs, pois se o valor de uma variável pode ser redeclarado a qualquer momento, fica difícil saber com certeza qual é o valor dela em determinado momento do programa! Já let
e const
trabalham de forma mais restrita, o que parece mais chato quando estamos aprendendo a programar, mas que depois passa a fazer muito mais sentido.
Você pode conferir mais sobre esse assunto sobre diferenças entre var, let e const no nosso blog!
Bons estudos ;)