Em JavaScript, você pode declarar variáveis usando let, var e const. Essas palavras-chave podem parecer semelhantes, mas têm diferenças importantes que podem afetar significativamente o comportamento do seu código. Neste artigo, explicaremos as diferenças entre eles e ajudaremos você a entender quando usar cada um deles.
var | deixar | const |
---|---|---|
Introduzido em: Está disponível desde o início do JavaScript. | Introduzido em: Adicionado em ES6 (ECMAScript 2015). | Introduzido em: Adicionado em ES6 (ECMAScript 2015). |
Escopo: com escopo de função. Uma variável var é acessível em toda a função onde é declarada. | Escopo: escopo do bloco. Uma variável let só é acessível dentro do bloco {} onde é declarada. | Escopo: com escopo de bloco, assim como let. |
Comportamento de içamento: variáveis var são içadas e podem ser usadas antes de serem declaradas (embora sejam indefinidas). | Comportamento de elevação: permite que as variáveis sejam elevadas, mas não inicializadas, portanto, você não pode usá-las antes da declaração. | Comportamento de elevação: Semelhante a let, as variáveis const são içadas, mas não inicializadas, portanto, devem ser declaradas antes do uso. |
Re-declaração: Você pode declarar novamente uma variável var no mesmo escopo sem erros. | Re-declaração: Você não pode declarar novamente uma variável let no mesmo escopo. | Re-declaração: Você não pode declarar novamente uma variável const, semelhante a let. |
Reatribuição: Variáveis declaradas com var podem ser reatribuídas. | Reatribuição: Variáveis declaradas com let também podem ser reatribuídas. | Reatribuição: Variáveis declaradas com const não podem ser reatribuídas; eles são constantes. |
Aqui está um exemplo que mostra como var, let e const se comportam de maneira diferente:
function userDetails(username) { if (username) { console.log(salary); // Output: undefined (due to hoisting) console.log(age); // Error: ReferenceError: Cannot access 'age' before initialization console.log(country); // Error: ReferenceError: Cannot access 'country' before initialization let age = 30; var salary = 10000; const country = "USA"; // Trying to reassign const // country = "Canada"; // Error: Assignment to constant variable. } console.log(salary); // Output: 10000 (accessible due to function scope) console.log(age); // Error: age is not defined (due to block scope) console.log(country); // Error: country is not defined (due to block scope) } userDetails("John");
Explicação do exemplo:
Içando com var: A variável salário declarada com var é içada para o topo da função. É por isso que você pode acessá-lo antes de sua declaração, embora seu valor seja indefinido até que a atribuição aconteça.
Içamento com let e const: As variáveis idade e país também são içadas, mas diferentemente de var, elas não são inicializadas. Isso significa que você não pode acessá-los antes de sua declaração, resultando em um ReferenceError.
Escopo do bloco: Após o bloco if, o salário ainda está acessível devido ao var ter escopo de função. No entanto, tanto a idade (declarada com let) quanto o país (declarado com const) têm escopo de bloco, portanto não podem ser acessados fora do bloco.
Reatribuição com const: Variáveis declaradas com const não podem ser reatribuídas. No exemplo, tentar alterar o valor do país resultaria em um erro.
Use let quando precisar de uma variável que possa ser reatribuída, mas que só deve ser acessível dentro de um bloco de código específico. Isso é útil para contadores de loop, condicionais ou qualquer variável que será modificada, mas não precisa existir fora de seu bloco.
Use var em situações em que você precisa de uma variável que deve ser acessível em toda uma função, embora isso seja menos comum em JavaScript moderno devido à introdução de let e const.
Use const quando quiser declarar uma variável que nunca deve ser reatribuída. Isso é ideal para constantes, como valores de configuração ou dados fixos, que devem permanecer iguais em todo o código.
Compreender as diferenças entre var, let e const é essencial para escrever JavaScript moderno e eficiente. let e const são geralmente preferidos a var no código moderno, sendo const a escolha certa para variáveis que não devem ser reatribuídas. Ao escolher a palavra-chave certa, você pode escrever um código mais claro e confiável, menos sujeito a bugs.
Ao usar const para valores que não devem mudar, deixe para variáveis que podem mudar dentro de um bloco, e evitando var na maioria dos casos, seu código JavaScript será mais seguro e fácil de gerenciar.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3