
Quem estuda / trabalha com JS sabe que pode usarvar
,let
econst
. Entretanto, você sabe a diferença entre esses tipos de variáveis, já que todas elas guardam um determinado valor?!
Diferença entrevar
elet
Quando uma variável é declarada comvar
, torna-se uma variável de escopo global, isto é, ela pode ser utilizada em várias partes do nosso código, o que pode ser um problema.
Espera. O que é um escopo?!
Pode-se dizer que escopo seria um bloco de código que tem alguma funcionalidade. Basicamente é um espaço limitado. Quando uma variável está dentro de uma função, está em um escopo local (restrito àquela função) e quando uma variável está em um escopo global, quer dizer que ela está fora da função (e portanto pode ser usada em qualquer cantinho do nosso código).
Por que pode ser um problema?!
Pode ser uma problema porque se alguém modificar o código onde não deve ser mexido por causar um montão debugs.
E quanto aolet
?
Olet
é um pouquinho mais limitado que ovar
, isto é, ela pode existir dentro daquele bloco (função). Se essa variável for chamada fora da função, vai dar erro.
functionqualquerCoisa(){leta=123;}console.log(a);// ReferenceError: 'a' is not defined
Entretanto,let
evar
têm algo em comum...
Se eu declaro a mesma variável comlet
evar
mais de uma vez, posso colocar qualquer valor nela que nada vai acontecer. O máximo que vai acontecer é chamar a variável com o valor mais recente.
// Exemplo com letletqualquerCoisa="Aninha";qualquerCoisa=1000;qualquerCoisa=true;console.log(qualquerCoisa);// true
// Exemplo com varvarqualquerCoisa="Aninha";qualquerCoisa=1000;qualquerCoisa=true;console.log(qualquerCoisa);// true
É por isso que devo usarconst
?!
Sim, porque se por acaso você modificar o valor que está em uma variável com const, vai receber uma mensagem de erro.
constnumero=50;numero=20;// Não pode!!!!!
E aí? Gostaram? Até a próxima anotação.
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse