Let Const
10-03-2018 JS, ES6 JS ES6Wraz z rozwojem JS doszły nam nowsze zapisy takie jak let (zmienna) i const (stała), które naprawiają część problemów, które miał var.
1. Omówienie var
a) ZASIĘG FUNKCYJNY (konstrukcja var działa w kontekście funkcji).
for (var i = 1; i <= 3; i++){
console.log(i)
}
console.log('i = ', i)
// 1
// 2
// 3
// i = 4b) można ponownie deklarować tą samą zmienną:
var x = 3;
x // 3
var x = 4;
x //4c) występuje hoisting:
console.log(text2); // tekst"
var text2 = "tekst";2. Omówienie let i const
a) ZASIĘG BLOKOWY (konstrukcja let w kontekście bloku kodu).
for (let i = 1; i <= 3; i++){
console.log(i)
}
console.log('i = ', i)
// 1
// 2
// 3
// Uncaught ReferenceError: i is not defined
at <anonymous>:4:21b) Nie można deklarować ponownie tej samej zmiennej. Przy deklaracji tej samej zmiennej jest error (chroni przed nadpisaniem):
let x = 3;
x // 3
let x = 4; // error
const x = 3;
x // 3
const x = 4; //errorc) brak występowania hoistingu:
console.log(text2); // błąd
let text2 = "przykładowy tekst";3. Omówienie różnic między let i const
let
a) Możemy zadeklarować let bez przypisania jej wartości na samym początku.
let xb) Let tworzy zmienne, którym potem możemy zmieniać wartość.
let b = 5
b // 5
b = 7
b // 7let prop = {
max : 10
}
prop.max = 15
prop // {max: 15}
prop = {} // {}c) Słówka let używamy najczęściej do deklarowania zmiennych używanych w trakcie iteracji za pomocą pętli for/while.
const
a) Nie możemy zadeklarować const bez przypisania jej wartości na samym początku.
const x //errorWARTOŚĆ PRZYPISUJEMY TYLKO W MOMENCIE DEKLARACJI !!
b) Po deklaracji za pomocą const nie możemy zmieniać zawartości, ale możemy zmieniać zawartość np. obiektu, tablicy, albo kluczy.
const a = 5
a // 5
a = 7 // error const prop = {
max: 10
}
prop.max = 15; // 15
prop; // {max: 15}
prop = {}; // error
prop.min = 5; // 5
prop // {max: 10, min: 10}c) Słówka const używamy najczęściej do deklarowania obiektów i tablic.
Co więcej…nawiązują do zdania, które zostało napisane na wstępie chciałabym podkreślić, iż mówiąc o nowościach ES6 i deklaracji zmiennych
należy uważać na słowa, które się wypowie :) Otóż nie let i const! Owszem let jest zmienną, ale const jak sama nazwa wskazuje jest stałą.
Posiłkując się określeniami jednego z autorytetów JS Dr. Rauschmayer’a const tworzy immutable variables, czyli zmienną, której się nie zmienia.