Zmienne stałe. Słowo kluczowe const


Wiemy już, że możemy utworzyć (zadeklarować) nową zmienną za pomocą słowa kluczowego let oraz później przypisywać do takiej zmiennej nowe wartości, a nawet nowe wartości innego typu, np.:

let name = "Vadim"; // wartość jest ciągiem tekstowym
console.log(name); // konsola wyświetla "Vadim"

name = "Jan"; // wartość jest nadal ciągiem tekstowym, ale nowym
console.log(name); // konsola wyświetla "Jan"

name = 666; // nowa przypisana wartość jest liczbą!
console.log(name); // konsola wyświetla liczbę 666

Jak widać w powyższym przykładzie, zmienna name naprawdę się zmienia, jak sugeruje jej nazwa. Aczkolwiek, są także zmienne... stałe!

Zmienne stałe?!

Tak, to są zmienne, które tworzymy za pomocą słowa kluczowego const (od constant). W tym przypadku po zadeklarowaniu zmiennej nie możemy przypisać do niej nowej wartości:

const name = "Vadim"; // wartość jest ciągiem tekstowym
console.log(name); // konsola wyświetla "Vadim"

name = "Jan"; // wartość jest nadal ciągiem tekstowym, ale...
console.log(name); // konsola wyświetla błąd: Uncaught TypeError: Assignment to constant variable. Zmienna nie została nadpisana.

name = 666; // nowa przypisana wartość jest liczbą, ale to i tak nie ma znaczenia, ponieważ:
console.log(name); // konsola wyświetla błąd: Uncaught TypeError: Assignment to constant variable. Zmienna nie została nadpisana.

Długo się wahałem, czy pokazać Ci, czym jest stała const już tak wcześnie w kursie, ale uznałem, że wyjdzie Tobie na dobre. Na razie musisz tylko zrozumieć, że wartość zmiennej utworzonej za pomocą let możemy dowoli modyfikować po deklaracji, natomiast w przypadku deklaracji za pomocą słowa kluczowego const to nie jest możliwe. Dlatego, zanim zadeklarujesz zmienną, zastanów się, czy będziesz ją modyfikować: jeśli tak, to użyj słowa kluczowego let, jeśli z kolei nie - const.

To jest bardzo przydatna rzecz, uwierz mi! Kiedyś, wcale nie tak dawno, nie było możliwości tworzenia stałych w JavaScript i wszystkie zmienne były... zmiennymi. Aczkolwiek takie podejście może prowadzić do wielu błędów, np. przez przypadek nadpiszemy jakąś zmienną, która nie powinna być nadpisana i utracimy w związku z tym jakieś dane lub nasza aplikacja przestanie działać.

Do zmiennej const jeszcze wrócimy, a nawet ją... zmodyfikujemy! Że co?! Przed chwilą powiedziałeś, że nie da się modyfikować const! Tak, powiedziałem, ale jest to w pewnym sensie skrót myślowy, który niedługo rozwiniemy.