Forem

Cover image for Var, let e const: Qual é a diferença?!?!
ananopaisdojavascript
ananopaisdojavascript

Posted on • Edited on

3

Var, let e const: Qual é a diferença?!?!

Quem estuda / trabalha com JS sabe que pode usar var, let e const. Entretanto, você sabe a diferença entre esses tipos de variáveis, já que todas elas guardam um determinado valor?!

Diferença entre var e let

Quando uma variável é declarada com var, 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 de bugs.

E quanto ao let?

O let é um pouquinho mais limitado que o var, isto é, ela pode existir dentro daquele bloco (função). Se essa variável for chamada fora da função, vai dar erro.

function qualquerCoisa() {
  let a = 123;
}

console.log(a); // ReferenceError: 'a' is not defined
Enter fullscreen mode Exit fullscreen mode

Entretanto, let e var têm algo em comum...

Se eu declaro a mesma variável com let e var 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 let
let qualquerCoisa = "Aninha";
qualquerCoisa = 1000;
qualquerCoisa = true;
console.log(qualquerCoisa); // true
Enter fullscreen mode Exit fullscreen mode
// Exemplo com var
var qualquerCoisa = "Aninha";
qualquerCoisa = 1000;
qualquerCoisa = true;
console.log(qualquerCoisa); // true
Enter fullscreen mode Exit fullscreen mode

É por isso que devo usar const?!

Sim, porque se por acaso você modificar o valor que está em uma variável com const, vai receber uma mensagem de erro.

const numero = 50;
numero = 20; // Não pode!!!!!
Enter fullscreen mode Exit fullscreen mode

E aí? Gostaram? Até a próxima anotação.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay