JavaScript Const

ECMAScript 2015

ES2015 introduceerde twee belangrijke nieuwe JavaScript-sleutelwoorden:let en const.

Door const De variabele die wordt gedefinieerd let Variabelen lijken op elkaar, maar kunnen niet opnieuw worden toegewezen:

Voorbeeld

const PI = 3.141592653589793;
PI = 3.14;      // Dit zal fout gaan
PI = PI + 10;   // Dit zal ook fout gaan

Probeer het zelf

block scope

inblock scopebinnen gebruikt const De variabele die wordt gedeclareerd let Variabelen lijken op elkaar.

In dit voorbeeld is x in het blok gedeclareerd, verschillend van x buiten het blok gedeclareerd:

Voorbeeld

var x = 10;
// Hier is x 10
{ 
  const x = 6;
  // Hier is x 6
}
// Hier is x 10

Probeer het zelf

U kunt in het vorige hoofdstuk JavaScript Let In de middelbare school leer je meer over block scope.

bij de verklaring

JavaScript const Variabelen moeten worden toegewezen bij de verklaring:

Onjuist

const PI;
PI = 3.14159265359;

Juist

const PI = 3.14159265359;

Is geen echte constante

Sleutelwoord const Enigszins misleidend.

Het definieert geen constante waarde. Het definieert een constante referentie naar de waarde.

Daarom kunnen we de oorspronkelijke waarde van een constante niet wijzigen, maar kunnen we de eigenschappen van het constante object wijzigen.

Oorspronkelijke waarde

Als we een oorspronkelijke waarde toewijzen aan een constante, kunnen we de oorspronkelijke waarde niet wijzigen:

Voorbeeld

const PI = 3.141592653589793;
PI = 3.14;      // Dit zal fout gaan
PI = PI + 10;   // Dit zal ook fout gaan

Probeer het zelf

Een constante object kan wijzigen

U kunt eigenschappen van een constante object wijzigen:

Voorbeeld

// U kunt const objecten maken:
const car = {type:"porsche", model:"911", color:"Black"};
// U kunt eigenschappen wijzigen:
car.color = "White";
// U kunt eigenschappen toevoegen:
car.owner = "Bill";

Probeer het zelf

Maar u kunt geen waarde opnieuw toewijzen aan een constante object:

Voorbeeld

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // FOUT

Probeer het zelf

Constante arrays kunnen wijzigen

U kunt elementen van een constante array wijzigen:

Voorbeeld

// U kunt een constante array maken:
const cars = ["Audi", "BMW", "porsche"];
// U kunt elementen wijzigen:
cars[0] = "Honda";
// U kunt elementen toevoegen:
cars.push("Volvo");

Probeer het zelf

Maar u kunt geen waarde opnieuw toewijzen aan een constante array:

Voorbeeld

const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"];    // FOUT

Probeer het zelf

Browserondersteuning

Internet Explorer 10 of eerder ondersteunt dit niet const Sleutelwoorden.

De tabel hieronder definieert de eerste browserversies die de const-sleutelwoorden volledig ondersteunen:

Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
Maart 2016 Oktober 2013 Februari 2015 September 2016 Maart 2016

Opnieuw declareren

Het is toegestaan om JavaScript opnieuw te declareren op elke locatie in het programma var Variabele:

Voorbeeld

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

Het is niet toegestaan om een bestaande variabele opnieuw te declareren in dezelfde scope of block: var of let variabele opnieuw te declareren of toe te wijzen aan const:

Voorbeeld

var x = 2;         // Toegestaan
const x = 2;       // Niet toegestaan
{
  let x = 2;     // Toegestaan
  const x = 2;   // Niet toegestaan
}

Het is niet toegestaan om een bestaande const variabele opnieuw te declareren of toe te wijzen in dezelfde scope of block:

Voorbeeld

const x = 2;       // Toestaan
const x = 3;       // Niet toegestaan
x = 3;             // Niet toegestaan
var x = 3;         // Niet toegestaan
let x = 3;         // Niet toegestaan
{
  const x = 2;   // Toestaan
  const x = 3;   // Niet toegestaan
  x = 3;         // Niet toegestaan
  var x = 3;     // Niet toegestaan
  let x = 3;     // Niet toegestaan
}

Opnieuw declareren in een andere scope of blok const Is toegestaan:

Voorbeeld

const x = 2;       // Toestaan
{
  const x = 3;   // Toestaan
}
{
  const x = 4;   // Toestaan
}

Opstijging

Door var Gedefinieerde variabelen wordenOpstijgingnaar het toppunt. Als u niet weet wat opstijging (Hoisting) is, raadpleeg dan dit hoofdstuk over opstijging.

U kunt een var variabele gebruiken voordat deze is verklaard:

Voorbeeld

carName = "Volvo";    // U kunt carName hier gebruiken
var carName;

Probeer het zelf

Door const Gedefinieerde variabelen worden niet naar het toppunt verhoogd.

const Variabelen kunnen niet worden gebruikt voordat ze zijn verklaard:

Voorbeeld

carName = "Volvo";    // U kunt carName hier niet gebruiken
const carName = "Volvo";