Tutorial de JS

JS HOME Introdução JS JS Para onde Saída JS Declarações JS Sintaxe JS Comentários JS Variáveis ​​JS JS Let JS Const Operadores JS JS Aritmética Atribuição de JS Tipos de dados JS Funções JS Objetos JS Eventos JS Strings JS Métodos de string JS Pesquisa de String JS Modelos de String JS Números JS Métodos de número JS Matrizes JS Métodos de matriz JS Classificação de matriz JS Iteração de matriz JS Const da matriz JS Datas JS Formatos de data JS Métodos de obtenção de data JS Métodos de conjunto de datas JS JS Math JS Aleatório JS Booleanos Comparações JS Condições JS Interruptor JS Circuito JS para JS Loop Para Entrada JS Loop Para De JS Loop Enquanto Quebra de JS Iteráveis ​​JS Conjuntos JS Mapas JS Tipo JS de Conversão de tipo JS JS bit a bit JS RegExp Erros JS Escopo JS Içamento JS Modo estrito JS JS esta palavra-chave Função de seta JS Classes JS JS JSON Depuração JS Guia de estilo JS Práticas recomendadas de JS Erros de JS Desempenho JS Palavras reservadas JS

Versões JS

Versões JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Histórico de JS

Objetos JS

Definições de objeto Propriedades do objeto Métodos de objeto Exibição de objetos Acessadores de objetos Construtores de objetos Protótipos de Objetos Iteráveis ​​de objeto Conjuntos de objetos Mapas de objetos Referência do objeto

Funções JS

Definições de função Parâmetros de função Invocação de função Chamada de Função Função Aplicar Fechamentos de Função

Classes JS

Introdução à aula Herança de classe Classe Estática

JS Assíncrono

Retornos de chamada JS JS Assíncrono Promessas JS JS Async/Aguardar

JS HTML DOM

Introdução ao DOM Métodos DOM Documento DOM Elementos DOM HTML DOM Formulários DOM CSS DOM Animações DOM Eventos DOM Ouvinte de eventos DOM Navegação DOM Nós DOM Coleções DOM Listas de nós DOM

BOM do navegador JS

Janela JS Tela JS Localização JS Histórico de JS Navegador JS Alerta pop-up JS Temporização JS Cookies JS

APIs da Web JS

Introdução à API da Web API de formulários da Web API de histórico da web API de armazenamento da Web API do trabalhador da Web API de busca da Web API de geolocalização da Web

JS AJAX

Introdução AJAX AJAX XML Http Solicitação AJAX Resposta AJAX Arquivo XML AJAX PHP AJAX ASP AJAX Banco de dados AJAX Aplicativos AJAX Exemplos AJAX

JS JSON

Introdução JSON Sintaxe JSON JSON x XML Tipos de dados JSON Análise JSON JSON Stringify Objetos JSON Matrizes JSON Servidor JSON JSON PHP HTML JSON JSON JSONP

JS x jQuery

Seletores jQuery HTML jQuery jQuery CSS jQuery DOM

Gráficos JS

Gráficos JS Tela JS JS Plotly JS Chart.js JS Google Chart JS D3.js

Exemplos JS

Exemplos JS JS HTML DOM Entrada HTML JS Objetos HTML JS Eventos HTML JS Navegador JS Editor JS Exercícios JS Teste JS Certificado JS

Referências JS

Objetos JavaScript Objetos HTML DOM


Escopo do JavaScript

O escopo determina a acessibilidade (visibilidade) das variáveis.

JavaScript tem 3 tipos de escopo:

  • Escopo do bloco
  • Escopo da função
  • Âmbito global

Escopo do Bloco

Antes do ES6 (2015), JavaScript tinha apenas Escopo Global e Escopo de Função .

O ES6 introduziu duas novas palavras-chave JavaScript importantes: lete const.

Essas duas palavras-chave fornecem Block Scope em JavaScript.

Variáveis ​​declaradas dentro de um bloco {} não podem ser acessadas de fora do bloco:

Exemplo

{
  let x = 2;
}
// x can NOT be used here

Variáveis ​​declaradas com a palavra- varchave NÃO podem ter escopo de bloco.

Variáveis ​​declaradas dentro de um bloco {} podem ser acessadas de fora do bloco.

Exemplo

{
  var x = 2;
}
// x CAN be used here

Escopo Local

Variáveis ​​declaradas dentro de uma função JavaScript tornam-se LOCAL para a função.

Exemplo

// code here can NOT use carName

function myFunction() {
  let carName = "Volvo";
  // code here CAN use carName
}

// code here can NOT use carName

As variáveis ​​locais têm o escopo da função :

Eles só podem ser acessados ​​de dentro da função.

Como as variáveis ​​locais são reconhecidas apenas dentro de suas funções, variáveis ​​com o mesmo nome podem ser usadas em funções diferentes.

As variáveis ​​locais são criadas quando uma função é iniciada e excluídas quando a função é concluída.


Escopo da Função

JavaScript tem escopo de função: cada função cria um novo escopo.

Variáveis ​​definidas dentro de uma função não são acessíveis (visíveis) de fora da função.

Variáveis ​​declaradas com var, let e constsão bastante semelhantes quando declaradas dentro de uma função.

Todos eles têm escopo de função :

function myFunction() {
  var carName = "Volvo";   // Function Scope
}
function myFunction() {
  let carName = "Volvo";   // Function Scope
}
function myFunction() {
  const carName = "Volvo";   // Function Scope
}

Variáveis ​​JavaScript globais

Uma variável declarada fora de uma função torna-se GLOBAL .

Exemplo

let carName = "Volvo";
// code here can use carName

function myFunction() {
// code here can also use carName
}

Uma variável global tem Escopo Global :

Todos os scripts e funções em uma página da Web podem acessá-la. 


Âmbito global

Variáveis ​​declaradas Globalmente (fora de qualquer função) possuem Escopo Global .

As variáveis globais podem ser acessadas de qualquer lugar em um programa JavaScript.

Variáveis ​​declaradas com var, let e constsão bastante semelhantes quando declaradas fora de um bloco.

Todos eles têm Escopo Global :

var x = 2;       // Global scope
let x = 2;       // Global scope
const x = 2;       // Global scope

Variáveis ​​JavaScript

Em JavaScript, objetos e funções também são variáveis.

O escopo determina a acessibilidade de variáveis, objetos e funções de diferentes partes do código.



Automaticamente Global

Se você atribuir um valor a uma variável que não foi declarada, ela se tornará automaticamente uma variável GLOBAL .

Este exemplo de código declarará uma variável global carName, mesmo que o valor seja atribuído dentro de uma função.

Exemplo

myFunction();

// code here can use carName

function myFunction() {
  carName = "Volvo";
}

modo estrito

Todos os navegadores modernos suportam a execução de JavaScript no "Modo Estrito".

Você aprenderá mais sobre como usar o modo estrito em um capítulo posterior deste tutorial.

No "Strict Mode", as variáveis ​​não declaradas não são automaticamente globais.


Variáveis ​​globais em HTML

Com JavaScript, o escopo global é o ambiente JavaScript.

Em HTML, o escopo global é o objeto window.

As variáveis ​​globais definidas com a palavra- varchave pertencem ao objeto window:

Exemplo

var carName = "Volvo";
// code here can use window.carName

Variáveis ​​globais definidas com a palavra- letchave não pertencem ao objeto window:

Exemplo

let carName = "Volvo";
// code here can not use window.carName

Aviso

NÃO crie variáveis ​​globais a menos que você pretenda.

Suas variáveis ​​globais (ou funções) podem substituir variáveis ​​de janela (ou funções).
Qualquer função, incluindo o objeto de janela, pode substituir suas variáveis ​​e funções globais.


A vida útil das variáveis ​​JavaScript

O tempo de vida de uma variável JavaScript começa quando ela é declarada.

As variáveis ​​de função (locais) são excluídas quando a função é concluída.

Em um navegador da Web, as variáveis ​​globais são excluídas quando você fecha a janela do navegador (ou guia).


Argumentos da função

Os argumentos da função (parâmetros) funcionam como variáveis ​​locais dentro das funções.