Skip to content

Instantly share code, notes, and snippets.

@rg3915
Forked from vinicius73/var-let-const.md
Last active April 4, 2017 23:25
Show Gist options
  • Save rg3915/a531d51a2a1274af1f323f22aae5439b to your computer and use it in GitHub Desktop.
Save rg3915/a531d51a2a1274af1f323f22aae5439b to your computer and use it in GitHub Desktop.
var, let e const no JavaScript

var,let, const

Em JavaScript há uma comportamento chamado hoisting. O uso de var trazia algumas pegadinhas, como por exemplo, declarar a mesma variável 2x usando var

var abc = 25
// ...
// ...
var abc = 99

Nenhum erro era disparado com isso, e vários efeitos colaterais eram gerados.

Com a versão ES2015 do JavaScript, duas novas keyworks foram adicionadas: let e const. Elas vieram para corrigir ou problemas de var e adicionar outros comportamentos, var passou a ser tratado como depreciado, sendo altamente desencorajado o seu uso.

Basicamente let substitui os comportamentos esperados quando se usava var, adicionando alguns comportamentos, como a validação, caso a mesma variável fosse declarada mais de 1x.

const inicialmente pode enganar os mais desavisados. Uma variável declarada com const não pode ter seu valor reatribuido, porém não garante imutabilidade.

Objetos por exemplo, podem ter seus valores modificados, o que não pode ser feito é a reatribuição da variável.

Em JavaScript tudo são objetos (exceto undefined), com exceção de números e strings (que são imutáveis) todos os objetos são passados como referência.

Ao usar const você garante que a váriavel ligada ao objeto não possa ser reassinada por outro valor

const abc = { x: 1 }
abc.x = 2
abc = { y: 3 } // erro

Atualmente a recomendação é sempre usar const e evitar let. Isso deixa o código mais previsivel e menos suscetível a bugs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment