var, let ou const? ¯\_(ツ)_/¯

Allan Barbosa
allbarbos
Published in
1 min readSep 10, 2017

O EcmaScript6 nos trouxe várias belezuras para facilitar a vida, com isso podemos deixar de usar var e reduzir um pouco de dor de cabeça!

Antes de qualquer comparação vamos as definições!

let

Possui escopo de bloco, ou seja, ao declarar uma variável dentro de um bloco if, for e etc, a mesma não pode mais ser acessada após a finalização do bloco.

const

Declara uma variável de valor fixo permitindo apenas leitura, isso não significa que seu valor é imutável. Constantes são block-scoped e seu valor não pode ser alterado via re-atribuição ou redeclarada.

Ok, mas e as diferenças?

Para ilustrar o escopo de bloco podemos utilizar o código abaixo:

if(true) {
var valeria = "var";
let leticia = "let";
console.log(`${valeria} ${leticia}`); // "var let"
}
console.log(`${valeria} ${leticia}`); // error

Valeria será acessada dentro e fora do bloco IF, já leticia, será acessada dentro do bloco IF e quando tentamos acessá-la no segundo console.log é apresentado o erro:

Uncaught ReferenceError: leticia is not defined

Utilizar let e const ajuda bastante a manter a coesão do código, entretanto é importante lembrar que nem todos os browsers possuem suporte ainda, sendo necessário transpilar o código para garantir a compatibilidade de browsers.

--

--