Const w JavaScript

ECMAScript 2015

ES2015 wprowadziło dwa ważne nowe słowa kluczowe w JavaScript:let i const.

Przez const zdefiniowanej let Zmienna zdefiniowana jest podobna do

Przykład

const PI = 3.141592653589793;
PI = 3.14;      // Będzie to błąd
PI = PI + 10;   // Będzie to błąd

Spróbuj sam

obszaru blokowego

wobszaru blokowegowewnątrz const Deklarowana zmienna jest podobna do let Zmiennymi podobnymi.

W tym przykładzie, x jest deklarowany w bloku, co różni się od x deklarowanego poza blokiem:

Przykład

var x = 10;
// Tutaj, x wynosi 10
{ 
  const x = 6;
  // Tutaj, x wynosi 6
}
// Tutaj, x wynosi 10

Spróbuj sam

W poprzednim rozdziale Let w JavaScript W szkole średniej dowiesz się więcej o obszarze blokowym.

w momencie deklaracji

JavaScript const Zmienna musi być przypisana w momencie deklaracji:

Niepoprawnie

const PI;
PI = 3.14159265359;

Poprawnie

const PI = 3.14159265359;

Nie jest prawdziwą stałą

Kluczowe słowo const Ma pewien pułapkę.

Nie definiuje wartości stałej. Definiuje stałą referencję do wartości.

Dlatego nie możemy zmienić wartości podstawowej stałego, ale możemy zmienić właściwości obiektu stałego.

Wartość podstawowa

Jeśli przypiszemy wartość podstawową do stałego, nie możemy zmienić wartości podstawowej:

Przykład

const PI = 3.141592653589793;
PI = 3.14;      // Będzie to błąd
PI = PI + 10;   // Będzie to błąd

Spróbuj sam

Obiekt stały może być zmieniony

Możesz zmienić właściwości obiektu stałego:

Przykład

// Możesz utworzyć obiekt const:
const car = {type:"porsche", model:"911", color:"Black"};
// Możesz zmienić właściwości:
car.color = "White";
// Możesz dodać atrybuty:
car.owner = "Bill";

Spróbuj sam

Ale nie możesz ponownie przypisać wartości do stałego obiektu:

Przykład

const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // BŁĄD

Spróbuj sam

Stale tablice mogą być zmieniane

Możesz zmienić elementy stałej tablicy:

Przykład

// Możesz utworzyć stałą tablicę:
const cars = ["Audi", "BMW", "porsche"];
// Możesz zmienić elementy:
cars[0] = "Honda";
// Możesz dodać elementy:
cars.push("Volvo");

Spróbuj sam

Ale nie możesz ponownie przypisać wartości do stałej tablicy:

Przykład

const cars = ["Audi", "BMW", "porsche"];
cars = ["Honda", "Toyota", "Volvo"];    // BŁĄD

Spróbuj sam

obsługa przeglądarek

Internet Explorer 10 i wcześniejsze wersje nie obsługują const słowo kluczowe.

Poniższa tabela definiuje wersje przeglądarek, które w pełni obsługuje kluczowe słowo const:

Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
marzec 2016 roku październik 2013 roku luty 2015 roku wrzesień 2016 roku marzec 2016 roku

ponowne deklarowanie

W każdym miejscu programu dozwolone jest ponowne deklarowanie JavaScript var zmienne:

Przykład

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

W jednym obszarze lub bloku nie dozwolone jest ponowne deklarowanie istniejącej zmiennej: var lub let ponowne deklarowanie lub przypisanie istniejącej zmiennej const:

Przykład

var x = 2;         // Dozwolone
const x = 2;       // Nie dozwolone
{
  let x = 2;     // Dozwolone
  const x = 2;   // Nie dozwolone
}

W jednym obszarze lub bloku nie dozwolone jest ponowne deklarowanie lub przypisanie istniejącej zmiennej const:

Przykład

const x = 2;       // Dozwolone
const x = 3;       // Nie dozwolone
x = 3;             // Nie dozwolone
var x = 3;         // Nie dozwolone
let x = 3;         // Nie dozwolone
{
  const x = 2;   // Dozwolone
  const x = 3;   // Nie dozwolone
  x = 3;         // Nie dozwolone
  var x = 3;     // Nie dozwolone
  let x = 3;     // Nie dozwolone
}

ponowne deklarowanie w innym zakresie lub bloku const Jest dozwolone:

Przykład

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

Podnoszenie

Przez var Zadeklarowane zmienne sąPodnoszeniedo góry. Jeśli nie wiesz, co to jest podnoszenie (Hoisting), przejdź do tego rozdziału.

Możesz używać zmiennej var przed jej deklaracją:

Przykład

carName = "Volvo";    // Możesz tutaj używać carName
var carName;

Spróbuj sam

Przez const Zadeklarowane zmienne nie są podnoszone do góry.

const Zmienne nie mogą być używane przed ich deklaracją:

Przykład

carName = "Volvo";    // Nie możesz tutaj używać carName
const carName = "Volvo";