English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O escopo da variável é a área do programa onde ela é definida.
As variáveis JavaScript têm apenas dois escopos:
Escopo local
Escopo global
O escopo determina a acessibilidade (visibilidade) das variáveis.
As variáveis declaradas dentro da função têmLOCAL(local) escopo, o que significa que não podem ser chamadas ou operadas fora da função.
// O código aqui não pode usar cityName function myFunc() { var cityName = "New Delhi"; // O código aqui pode usar cityName } // O código aqui não pode usar cityNameTeste e veja‹/›
As variáveis locais têm escopo de função, e só podem ser acessadas dentro da função.
Como as variáveis locais só podem ser reconhecidas dentro da função, variáveis com o mesmo nome podem ser usadas em diferentes funções.
Variáveis locais são criadas ao iniciar a função e deletadas quando a função é concluída.
As variáveis declaradas fora da função têmGLOBALEscopo, o que significa que todos os scripts podem usá-los, independentemente de estarem dentro ou fora da função.
// Inicialização de variável global var cityName = "New Delhi"; // O código aqui pode usar cityName function myFunc() { // O código aqui também pode usar cityName } // O código aqui pode usar cityNameTeste e veja‹/›
Que pode ser acessado de qualquer lugar do programa JavaScript.
No exemplo a seguir, criaremos um GLOBAL cityNameA variável. Dentro da função interna há uma variável local com o mesmo nome.
// Inicialização de variável global var cityName = "New Delhi"; function myFunc() { //Inicialização de variáveis locais e de escopo de função var cityName = "Jaipur"; document.writeln(cityName); } //Output de variáveis globais e locais document.writeln(cityName); myFunc(); document.writeln(cityName);Teste e veja‹/›
Ao as variáveis serem outputadas para o documento, podemos ver que os valores das variáveis dependem do escopo e que os valores originais não foram alterados.
Se uma atribuição for feita a uma variável não declarada, ela se tornará automaticamenteGLOBAL (global)variáveis.
Este exemplo declarará uma variável globalcityNameIsso também é verdade, mesmo que valores sejam atribuídos dentro da função.
myFunc(); // O código aqui pode usar cityName function myFunc() { cityName = "New Delhi"; }Teste e veja‹/›
A menos que seja necessário, não crie variáveis globais facilmente.
As variáveis globais podem sobrescrever as variáveis de janela.
Qualquer função, incluindo o objeto window, pode sobrescrever a variável GLOBAL.
O JavaScript tem três palavras-chave diferentes para declarar variáveis, o que adiciona uma camada de complexidade ao idioma.
As diferenças entre os dois são baseadas no alcance, promoção e realocação.
Palavra-chave | Alcance | Promoção | Pode ser realocado | Pode ser redeclarado |
---|---|---|---|---|
var | Escopo de função | Sim | Sim | Sim |
let | Escopo de bloco | Não | Sim | Não |
const | Escopo de bloco | Não | Não | Não |
comvarVariáveis declaradas com palavras-chave não podem ter escopo de bloco.
{} Pode acessar variáveis declaradas dentro do bloco desde o exterior do bloco:
{ var num = 50; } // num pode ser usado aqui
comletVariáveis declaradas com palavras-chave podem ter 'escopo de bloco'.
{} Não pode acessar variáveis declaradas dentro do bloco desde o exterior do bloco:
{ let num = 50; } // num não pode ser usado aqui
declaração de variável com constcomletsemelhante ao escopo de bloco.
{ const num = 50; } // num não pode ser usado aqui
O valor da constante não pode ser alterado por realocação e não pode ser redeclarado.
A vida útil da variável JavaScript começa com a declaração.
Será excluído após a conclusão da funçãoLocalvariáveis.
Quando você fechar a janela do navegadorGlobalAs variáveis serão excluídas, mas ainda estarão disponíveis para novas páginas carregadas na mesma janela.