English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico JavaScript

Objeto JavaScript

Função JavaScript

DOM HTML JS

BOM do navegador JS

Tutorial Básico AJAX

Manual de Referência JavaScript

Escopo de Variável do JavaScript

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.

Variáveis locais JavaScript

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 cityName
Teste 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.

Variáveis globais JavaScript

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 cityName
Teste 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.

Variável global automática

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.

Diferenças entre var, let e const

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-chaveAlcancePromoçãoPode ser realocadoPode ser redeclarado
varEscopo de funçãoSimSimSim
letEscopo de blocoNãoSimNão
constEscopo de blocoNãoNãoNão

Escopo de bloco do código JavaScript

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.

Vida útil da variável JavaScript

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.