JavaScript Const
Klíčové const
slovo bylo představeno v
ES6 (2015) .
Proměnné definované pomocí const
nelze znovu deklarovat.
Proměnné definované pomocí const
nelze znovu přiřadit.
Proměnné definované pomocí const
mají rozsah bloku.
Nelze znovu přiřadit
Proměnnou const
nelze znovu přiřadit:
Příklad
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
Musí být přiřazeno
Proměnným JavaScriptu const
musí být při deklaraci přiřazena hodnota:
Opravit
const PI = 3.14159265359;
Nesprávný
const PI;
PI = 3.14159265359;
Kdy použít JavaScript const?
Jako obecné pravidlo vždy deklarujte proměnnou pomocí const
, pokud nevíte, že se hodnota změní.
Použijte const
, když deklarujete:
- Nové pole
- Nový objekt
- Nová funkce
- Nový RegExp
Konstantní objekty a pole
Klíčové slovo const
je trochu zavádějící.
Nedefinuje konstantní hodnotu. Definuje konstantní odkaz na hodnotu.
Z tohoto důvodu NEMŮŽETE:
- Znovu přiřaďte konstantní hodnotu
- Změňte přiřazení konstantního pole
- Znovu přiřadit konstantní objekt
- Změňte prvky konstantního pole
- Změňte vlastnosti konstantního objektu
Ale MŮŽETE:
Konstantní pole
Prvky konstantního pole můžete změnit:
Příklad
// 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");
Ale NELZE znovu přiřadit pole:
Příklad
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Konstantní objekty
Vlastnosti konstantního objektu můžete změnit:
Příklad
// 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";
Objekt však NEMŮŽETE znovu přiřadit:
Příklad
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; //
ERROR
Podpora prohlížeče
Klíčové const
slovo není podporováno v aplikaci Internet Explorer 10 nebo starší.
Následující tabulka definuje první verze prohlížeče s plnou podporou const
klíčového slova:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Rozsah bloku
Deklarování proměnné pomocí const
je podobné, jako let
pokud jde o rozsah bloku .
X deklarované v bloku v tomto příkladu není stejné jako x deklarované mimo blok:
Příklad
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
Více o rozsahu bloku se dozvíte v kapitole Rozsah JavaScriptu .
Opětovná deklarace
Opětovná deklarace proměnné JavaScriptu var
je povolena kdekoli v programu:
Příklad
var x = 2; // Allowed
var x = 3; // Allowed
x = 4; // Allowed
Opětovné deklarování existující var
nebo let
proměnné na const
, ve stejném rozsahu, není povoleno:
Příklad
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
}
Opětovné přiřazení existující const
proměnné ve stejném rozsahu není povoleno:
Příklad
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
}
Opětovné deklarování proměnné pomocí const
, v jiném rozsahu nebo v jiném bloku je povoleno:
Příklad
const x = 2; // Allowed
{
const x = 3; // Allowed
}
{
const x = 4; // Allowed
}
Const Hoisting
Proměnné definované pomocí var
jsou zvednuty nahoru a lze je kdykoli inicializovat.
Význam: Proměnnou můžete použít před jejím deklarováním:
Příklad
Toto je v pořádku:
carName = "Volvo";
var carName;
Pokud se chcete o zdvihání dozvědět více, prostudujte si kapitolu JavaScript zdvihání .
Proměnné definované pomocí const
jsou také zvednuty nahoru, ale nejsou inicializovány.
Význam: Použití const
proměnné před jejím deklarováním bude mít za následek
ReferenceError
:
Příklad
alert (carName);
const carName = "Volvo";