In vanilla JavaScript, variáveis são declaradas usando a palavra-chave ‘var
‘. Em ES6, agora, você pode definir variáveis usando let
e const
também palavras-chave. Todas as três palavras-chave têm sintaxe simalar para declaração e inicialização de variáveis, mas diferem no seu escopo e uso. Vamos aprender as diferenças entre estas 3 palavras-chave.
var palavra-chave
‘var
‘ palavra-chave tem a tradicional sintaxe de definição de variáveis. Opcionalmente, você pode inicializar a variável com um valor. Se você não inicializar sua variável na declaração var
, é automaticamente atribuído o valor JavaScript undefined
.
1) Escopo
2) Levantamento de declarações de var
Por favor note que variáveis declaradas com a palavra-chave var
estão sujeitas ao levantamento. Hoisting significa que se declararmos uma variável (declarada mas não inicializada) no final de uma função, o tempo de execução irá içá-la para o topo e não teremos nenhum erro se tivéssemos usado essa variável antes de ser declarada.
Ler Mais: JavaScript Hoisting
3) Se você não usar a palavra-chave ‘var’
Em JavaScript, se você não usar a palavra-chave var
para declaração de variável (declaração implícita) então a variável será criada no escopo global. e.g.
for(index=0; index< array.length; index++){//index is in global scope //code}
Acima for-loop criará uma variável chamada index
no escopo global. Se outra pessoa também estiver usando uma variável global index
, então você acabou de sobrescrever sua variável.
Para evitar dar o escopo global à variável, você deve usar a palavra-chave var
na sua declaração de variável.
let keyword
let
keyword é muito semelhante a var
keyword – com mais restrição no escopo.
const keyword
-
const
declara uma variável com escopo em bloco com um valor constante. É basicamente uma declaração de variável com a palavra-chave ‘var
‘ onde o valor da variável é constante e não pode ser alterado. -
const
segue os mesmos princípios de delimitação de âmbito que a palavra-chavelet
> palavra-chave. - se souber que a variável que está a declarar não pode e não deve ser reatribuída, então declare-a com const, senão use a palavra-chave let.
Sintaxe e Utilização
const PI = "3.14";PI = 12;//Uncaught TypeError: Assignment to constant variable.