Não utilize
var
: existem problemas com escopo associados (o único caso em que ocorre algo bem comportado é com escopo de funções. Em outros blocos, ele irá vazar.
Por exemplo, o seguinte código retornará erro:
function sayHello(){
var text = 'Hello world';
console.log(text);
}
console.log(text);
Porém, o seguinte executará normalmente:
function imprimeIdade() {
for (var idade = 30; idade <= 40; idade++) {
console.log('Idade dentro do for:', idade)
}
console.log('Idade fora do for:', idade)
}
imprimeIdade();
E o escopo da variável não ficará dentro do for
(o que pode gerar problemas);
Crie variáveis sempre com uso de
let
e constantes com o uso deconst
;
Usando a palavra reservada const
você não será capaz de reatribuir o conteúdo, mas para objetos e estruturas dinâmicas, as propriedades e elementos podem ser mudadas. Por exemplo, o seguinte não irá funcionar:
const person = { name: 'Junior', age: 20 };
person = { name: 'Amancio', age: 21 };
Mas isso é possível:
const person = { name: 'Junior', age: 20 };
person.name ='Amancio';
person.age = 21;
(Basicamente, a refência é constante, mas os valores das propriedades podem mudar).