Qual a diferença entre var, let e const no javascript

Em JavaScript, var, const e let são palavras-chave usadas para declarar variáveis, mas têm comportamentos ligeiramente diferentes.

  1. var:
  • Declarada globalmente ou localmente, não importa o bloco de escopo.
  • Tem escopo de função, não de bloco.
  • Pode ser reatribuída e atualizada.
  • É “elevada” (hoisted) durante a fase de compilação, o que significa que pode ser usada antes de ser declarada no código.
var x = 10;
if (true) {
    var y = 20;
}
console.log(x); // 10
console.log(y); // 20
  1. let:
  • Introduzido no ECMAScript 6 (ES6) para resolver algumas limitações do var.
  • Tem escopo de bloco, o que significa que a variável só é visível dentro do bloco onde foi declarada.
  • Não pode ser redeclarada no mesmo escopo.
  • Não é “elevada” (hoisted) da mesma forma que o var.
let a = 30;
if (true) {
    let b = 40;
    console.log(a); // 30
    console.log(b); // 40
}
console.log(a); // 30
// console.log(b); // Erro, b não está definido fora do bloco
  1. const:
  • Também introduzido no ES6.
  • Similar ao let em termos de escopo de bloco.
  • Não pode ser reatribuída após a inicialização.
  • Deve ser inicializada durante a declaração.
const PI = 3.14;
// PI = 3.14159; // Erro, não pode reatribuir uma constante

Em geral, é recomendável usar const sempre que possível para garantir imutabilidade, a menos que você saiba que a variável precisará ser reatribuída, nesse caso, você pode usar let. O uso de var é menos comum atualmente, especialmente em código moderno que utiliza ECMAScript 6 ou versões posteriores.

Publicar comentário