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


Const JavaScript

A constpalavra-chave foi introduzida em ES6 (2015) .

Variáveis ​​definidas com constnão podem ser redeclaradas.

Variáveis ​​definidas com constnão podem ser reatribuídas.

As variáveis ​​definidas com consttêm Escopo do Bloco.

Não pode ser reatribuído

Uma constvariável não pode ser reatribuída:

Exemplo

const PI = 3.141592653589793;
PI = 3.14;      // This will give an error
PI = PI + 10;   // This will also give an error

Deve ser atribuído

As variáveis JavaScript constdevem receber um valor quando são declaradas:

Correto

const PI = 3.14159265359;

Incorreta

const PI;
PI = 3.14159265359;

Quando usar JavaScript const?

Como regra geral, sempre declare uma variável com consta menos que você saiba que o valor será alterado.

Use constquando você declarar:

  • Uma nova matriz
  • Um novo objeto
  • Uma nova função
  • Um novo RegExp

Objetos e matrizes constantes

A palavra-chave consté um pouco enganosa.

Não define um valor constante. Ele define uma referência constante a um valor.

Por isso você NÃO pode:

  • Reatribuir um valor constante
  • Reatribuir uma matriz constante
  • Reatribuir um objeto constante

    Mas você pode:

  • Altere os elementos da matriz constante
  • Alterar as propriedades do objeto constante

Matrizes Constantes

Você pode alterar os elementos de uma matriz constante:

Exemplo

// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];

// You can change an element:
cars[0] = "Toyota";

// You can add an element:
cars.push("Audi");

Mas você NÃO pode reatribuir a matriz:

Exemplo

const cars = ["Saab", "Volvo", "BMW"];

cars = ["Toyota", "Volvo", "Audi"];    // ERROR

Objetos Constantes

Você pode alterar as propriedades de um objeto constante:

Exemplo

// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};

// You can change a property:
car.color = "red";

// You can add a property:
car.owner = "Johnson";

Mas você NÃO pode reatribuir o objeto:

Exemplo

const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"};    // ERROR

Suporte ao navegador

A constpalavra-chave não tem suporte no Internet Explorer 10 ou anterior.

A tabela a seguir define as primeiras versões do navegador com suporte total para a constpalavra-chave:

Chrome 49 IE 11 / Edge Firefox 36 Safari 10 Opera 36
Mar, 2016 Oct, 2013 Feb, 2015 Sep, 2016 Mar, 2016


Escopo do Bloco

Declarar uma variável com consté semelhante a let quando se trata de Block Scope .

O x declarado no bloco, neste exemplo, não é o mesmo que o x declarado fora do bloco:

Exemplo

const x = 10;
// Here x is 10

{
const x = 2;
// Here x is 2
}

// Here x is 10

Você pode aprender mais sobre o escopo do bloco no capítulo Escopo do JavaScript .


Redeclarando

Redeclarar uma varvariável JavaScript é permitido em qualquer lugar em um programa:

Exemplo

var x = 2;     // Allowed
var x = 3;     // Allowed
x = 4;         // Allowed

Redeclarar uma variável varou existente para , no mesmo escopo, não é permitido:letconst

Exemplo

var x = 2;     // Allowed
const x = 2;   // Not allowed

{
let x = 2;     // Allowed
const x = 2;   // Not allowed
}

{
const x = 2;   // Allowed
const x = 2;   // Not allowed
}

Não é permitido reatribuir uma constvariável existente, no mesmo escopo:

Exemplo

const x = 2;     // Allowed
x = 2;           // Not allowed
var x = 2;       // Not allowed
let x = 2;       // Not allowed
const x = 2;     // Not allowed

{
  const x = 2;   // Allowed
  x = 2;         // Not allowed
  var x = 2;     // Not allowed
  let x = 2;     // Not allowed
  const x = 2;   // Not allowed
}

Redeclarar uma variável com const, em outro escopo, ou em outro bloco, é permitido:

Exemplo

const x = 2;       // Allowed

{
  const x = 3;   // Allowed
}

{
  const x = 4;   // Allowed
}

Const Içamento

As variáveis ​​definidas com varsão içadas para o topo e podem ser inicializadas a qualquer momento.

Significado: Você pode usar a variável antes de ser declarada:

Exemplo

Isso está bem:

carName = "Volvo";
var carName;

Se você quiser aprender mais sobre içamento, estude o capítulo JavaScript Içamento .

As variáveis ​​definidas com consttambém são içadas para o topo, mas não inicializadas.

Significado: Usar uma constvariável antes de ser declarada resultará em ReferenceError:

Exemplo

alert (carName);
const carName = "Volvo";