JavaScript Const
Het const
trefwoord werd geïntroduceerd in
ES6 (2015) .
Variabelen gedefinieerd met const
kunnen niet opnieuw worden gedeclareerd.
Variabelen gedefinieerd met const
kunnen niet opnieuw worden toegewezen.
Variabelen gedefinieerd met const
hebben Block Scope.
Kan niet opnieuw worden toegewezen
Een const
variabele kan niet opnieuw worden toegewezen:
Voorbeeld
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
Moet worden toegewezen
JavaScript- const
variabelen moeten een waarde krijgen wanneer ze worden gedeclareerd:
Correct
const PI = 3.14159265359;
Niet correct
const PI;
PI = 3.14159265359;
Wanneer JavaScript-const gebruiken?
Als algemene regel geldt dat u een variabele altijd met declareert, const
tenzij u weet dat de waarde zal veranderen.
Gebruik const
wanneer u aangeeft:
- Een nieuwe array
- Een nieuw object
- Een nieuwe functie
- Een nieuwe RegExp
Constante objecten en arrays
Het trefwoord const
is een beetje misleidend.
Het definieert geen constante waarde. Het definieert een constante verwijzing naar een waarde.
Hierdoor kun je NIET:
- Een constante waarde opnieuw toewijzen
- Een constante array opnieuw toewijzen
- Een constant object opnieuw toewijzen
- De elementen van constante array wijzigen
- De eigenschappen van een constant object wijzigen
Maar je kan:
Constante arrays
U kunt de elementen van een constante array wijzigen:
Voorbeeld
// 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");
Maar u kunt de array NIET opnieuw toewijzen:
Voorbeeld
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Constante objecten
U kunt de eigenschappen van een constant object wijzigen:
Voorbeeld
// 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";
Maar u kunt het object NIET opnieuw toewijzen:
Voorbeeld
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; //
ERROR
Browserondersteuning
Het const
trefwoord wordt niet ondersteund in Internet Explorer 10 of eerder.
De volgende tabel definieert de eerste browserversies met volledige ondersteuning voor het const
trefwoord:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Bereik blokkeren
Het declareren van een variabele met const
is vergelijkbaar let
met Block Scope .
De x gedeclareerd in het blok, in dit voorbeeld, is niet hetzelfde als de x gedeclareerd buiten het blok:
Voorbeeld
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
U kunt meer leren over blokbereik in het hoofdstuk JavaScript-bereik .
Opnieuw declareren
Het opnieuw declareren van een JavaScript- var
variabele is overal in een programma toegestaan:
Voorbeeld
var x = 2; // Allowed
var x = 3; // Allowed
x = 4; // Allowed
Het opnieuw declareren van een bestaande var
of let
variabele naar const
, in hetzelfde bereik, is niet toegestaan:
Voorbeeld
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
}
Het opnieuw toewijzen van een bestaande const
variabele in hetzelfde bereik is niet toegestaan:
Voorbeeld
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
}
Het opnieuw declareren van een variabele met const
, in een ander bereik, of in een ander blok, is toegestaan:
Voorbeeld
const x = 2; // Allowed
{
const x = 3; // Allowed
}
{
const x = 4; // Allowed
}
Const hijsen
Variabelen gedefinieerd met var
worden naar boven gehesen en kunnen op elk moment worden geïnitialiseerd.
Betekenis: U kunt de variabele gebruiken voordat deze wordt gedeclareerd:
Voorbeeld
Dit is oke:
carName = "Volvo";
var carName;
Als je meer wilt weten over hijsen, lees dan het hoofdstuk JavaScript Hijsen .
Variabelen gedefinieerd met const
worden ook naar boven gehesen, maar niet geïnitialiseerd.
Betekenis: het gebruik van een const
variabele voordat deze wordt gedeclareerd, resulteert in een
ReferenceError
:
Voorbeeld
alert (carName);
const carName = "Volvo";