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.
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
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
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