Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Cover image for Diferenças entre let e var. Javascript
Alison Silva 🔥💯⛏️
Alison Silva 🔥💯⛏️

Posted on

     

Diferenças entre let e var. Javascript

O ES2015 introduziu o conceito deBlock scope que permite termos variáveis dentro de blocos{ } que existem apenas dentro deste scope e não podem ser acedidas fora dele.
Simplificando:
Quando declaramos uma variável utilizandovar dentro de um bloco, a mesma ficará disponível globalmente, enquantolet econst não. Isso permite um maior controlo sobre cada uma de nossas variáveis, evitando assim alterações de valores de maneira errada.

vara=1;letb=2;{console.log(a);console.log(b);}{varc=3;letd=4;}console.log(c);console.log(d);
Enter fullscreen modeExit fullscreen mode

Alt Text

No exemplo abaixo, onde temos uma função, o valor de car que foi declarado utilizandolet, irá ser alterado de Audi para VW apenas dentro da função. O valor de truck que foi declarado comovar será alterado de Volvo para Scania.
Em ambos os casos, este valor foi alterado apenas dentro da função, ou seja: ficou restrito ao seu scopo.
Então temos 2 variáveis de cada, cada uma a "viver" no seu escopo. Uma no global e outra no scopo da função.

letcar='Audi';vartruck='Volvo';letWhatsTheValue=()=>{letcar='VW';vartruck='Scania';console.log('The "let car" inside is:',car);console.log('The "var truck" inside is:',truck);}WhatsTheValue();console.log('The "let car" outside is:',car);console.log('The "var truck" outside is:',truck);
Enter fullscreen modeExit fullscreen mode

Alt Text

No próximo exemplo, o valor de car é alterado deAudi paraVW, como acontecia anteriormente, e o valor de truck também irá alterar de Volvo para Scania, mas repare que agora temos o mesmo valor no log inside e outside para a variável truck.
Diferente de quando utilizamos uma função, utilizando apenas{ } olet manteve o seu comportamento, enquantovar passou a subscrever a variável do scopo global.
Neste caso deixamos de ter 2 variáveis de cada e passamos a ter 2xcar e apenas umatruck.

letcar='Audi';vartruck='Volvo';{letcar='VW';vartruck='Scania';console.log('The "let car" inside is:',car);console.log('The "var truck" inside is:',truck);}console.log('The "let car" outside is:',car);console.log('The "var truck" outside is:',truck);
Enter fullscreen modeExit fullscreen mode

Alt Text

Utilizarvar não é errado, de todo, mas como olet nos permite um maior controlo sobre onde realmente estão nossas variáveis, em muitos casos é recomendado na sua utilização, de maneira a evitar bugs porque alteramos o valor de uma variável que não era suposto ser alterada.

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Developing things greate!
  • Location
    Lisbon
  • Work
    Full-Stack Web Developer at Wunderman Thompson
  • Joined

More fromAlison Silva 🔥💯⛏️

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp