Variáveis
No Javascript, podemos declarar uma variável utilizando a palavra reservada var, let e const.
A diferença entre elas, é que quando se declara uma variável utilizando o var, ela acaba vazando o escopo de por exemplo, um if, for, while, etc. Já quando se declara com let, nesse caso o escopo é respeitado. E por fim, quando se declara com const, uma vez declarada a variável não consegue mudar seu valor, gerando um erro.
Var, let e const
if (true) {
var idade = 26;
}
console.log(idade); // 26
if (true) {
let idade = 26;
}
console.log(idade); // ReferenceError: idade is not defined
const idade = 26;
idade = 27;
console.log(idade); // TypeError: Assignment to constant variable.
Escopo
As variáveis possuem escopo, por exemplo, se for declarado no escopo global, qualquer lugar pode ter acesso a essa variável, porém se for declarado dentro de uma função, apenas essa função irá ter acesso ao seu valor.
let idade = 26;
function myFunction() {
console.log(idade);
}
myFunction(); // 26
function myFunction() {
let idade = 26;
}
console.log(idade); // ReferenceError: idade is not defined
Hoisting
Quando o javascript compila todo o seu código, todas as declarações que estão utilizando var, são levadas para o topo do código. A declaração em si fica no topo mas a atribuição fica no mesmo local.
console.log(idade) // undefined
var idade = 26;
console.log(idade); // 26
Esse código acima, é equivalente ao debaixo, ou seja, a declaração sobre para o topo.
var idade;
console.log(idade); // undefined
idade = 26;
console.log(idade); // 26
Last updated
Was this helpful?