O que é escopo em JavaScript
Em JavaScript, o escopo é definido por colchetes encaracolados. Ele define um bloco de código que precisa ser executado juntos. JavaScript tem dois tipos de escopos:
Função-escopo: Qualquer variável em JavaScript criada dentro de uma função usando var é escopo de função. Sua visibilidade é restrita à definição da função e não pode ser acessada de qualquer lugar fora da função:
função showMessage ()Block-scope: Um bloco de código em JavaScript é definido por aparelhos encaracolados. Esse tipo de escopo nos ajudará a diferenciar destaque entre os três métodos de declaração de variáveis:
A seguir, é um exemplo em que declaramos variáveis com var, let e const em um bloco if e depois as registramos no console:
se for verdade)Todas as variáveis foram registradas no console sem nenhum erro, pois foram registradas no mesmo bloco.
No entanto, se tentarmos registrá-los de fora do bloco IF, o erro abaixo mencionado será exibido:
se for verdade)Como usar o VAR para declarar uma variável no JavaScript
Antes do ECMAScript 2016 var foi o único método de declarar uma variável em JavaScript, mas tinha vários problemas associados a ele, de modo que novos métodos foram introduzidos que poderiam ser usados para declarar variáveis. Vamos primeiro entender var E então falaremos sobre essas questões:
Escopo de var: O escopo variável significa basicamente onde a variável estará disponível para uso. Variáveis que são declaradas com o var palavra -chave tem escopo global ou local.
Variáveis que são declaradas fora do bloco de funções usando var ter escopo global. Escopo global significa que uma variável está disponível para uso em qualquer lugar da janela.
Quando a variável é declarada dentro de uma função, é escopo de funções, o que significa que ela só pode ser usada dentro da função:
Para entender melhor, veja o exemplo abaixo:
função showMessage ()Aqui o mensagem é o escopo da função para que não possa ser acessado fora da função. Então, se fizermos isso:
função showMessage ()Isso nos dará um erro que é porque o mensagem não está disponível fora da função.
VAR fora de um loop for: A variável "eu" pode ser acessado do lado de fora do loop for.
para (var i = 0; i < 5; i++)As variáveis VAR podem ser declaradas e atualizadas novamente: Nas variáveis JavaScript declaradas com var A palavra -chave pode ser redeclared e atualizada no mesmo escopo:
função showMessage ()Como usar o Let to Declare uma variável no JavaScript: O deixar A palavra -chave agora é preferida var para declarações variáveis; vem com algumas melhorias sobre var.
Vamos bloquear o escopo: Em JavaScript, um bloco de código é a coleção de declarações limitadas por um par de colchetes encaracolados . Uma variável declarada usando o deixar A palavra -chave está disponível apenas para uso nesse bloco e não pode ser acessada de fora:
se for verdade)Se usarmos o mensagem Fora do bloco onde foi definido, ele retornará um erro. Isso ocorre porque as variáveis permitem que as variáveis sejam escondidas.
Deixe fora de um loop for: O exemplo a seguir demonstrando o deixar saída variável usando o loop:
para (vamos i = 0; i < 5; i++)vamos ser atualizados, mas não re-declarados: Uma variável declarada com deixar pode ser atualizado em seu escopo, como var, Mas diferente var, não pode ser redeclarado:
deixe a mensagem = 'oi do linuxhint';O console está completamente vazio e não está retornando nenhum erro. Essas declarações retornarão um erro:
deixe a mensagem = 'oi do linuxhint';No entanto, redefinindo a mesma variável em um escopo diferente usando deixar não retorna nenhum erro:
deixe a mensagem = 'oi do linuxhint';O deixar A palavra -chave trata essas duas variáveis como diferentes se estiverem em escopos diferentes, para que não retorne nenhum erro; Este recurso do deixar A palavra -chave torna uma escolha melhor do que var. Ao usar deixar, Você pode reutilizar nomes de variáveis em diferentes escopos sem se preocupar se você já usou esse nome de variável antes.
Como usar o const para declarar a variável em javascript
As variáveis declaradas usando o const Palavra -chave tem valores constantes. Isso significa que seus valores não podem ser alterados/transferidos. Semelhante às variáveis declaradas com o deixar palavra -chave, as variáveis declaradas com o var Palavra-chave também é escopo de blocos.
Const não pode ser re-declarado ou transferido: As variáveis declaradas com a palavra -chave const não pode ser redeclarado ou transferido no mesmo escopo. Portanto, se declaramos uma variável com palavra -chave const, não podemos fazer isso:
const message = 'hi from linuxhint';Nem seremos capazes de fazer isso:
const message = 'hi from linuxhint';Toda variável declarada usando o const A palavra -chave deve ser inicializada no momento de sua declaração.
Este comportamento do const A palavra -chave de alguma forma muda quando se trata de objetos. Enquanto o objeto declarado não pode ser atualizado, suas propriedades podem ser alteradas
Então, se declararmos um objeto com const:
const user =Embora isso não possa ser feito:
usuário =Isto pode ser feito:
do utilizador.name = "Harry";Isso mudará o valor do do utilizador.nome sem retornar nenhum erro.
Revisão final
Declaração variável | Escopo de função | Block-scope | Redefinível |
---|---|---|---|
var | ✅ | ❌ | ✅ |
deixar | ❌ | ✅ | ✅ |
const | ❌ | ✅ | ❌ |
Conclusão
Geralmente é uma boa prática evitar usar var Declarar variáveis em JavaScript porque o escopo da função é confuso e não é tão óbvio quanto o escopo do bloco. O deixar e const Palavras -chave incentivam os desenvolvedores a usar melhores práticas de codificação. Você geralmente deve usar deixar Para as variáveis que você precisará reatribuir e usar o const palavra -chave para todas as outras variáveis. Este artigo explica minuciosamente todos os três tipos de variáveis com exemplos.