Autor: Joanna, data dodania: 2019-09-30

Jakie są różnice pomiędzy let, const i var?

Autor: Joanna, data dodania: 2019-10-04

0

var - posiada zakres funkcyjny i podlega hoistingowi. Onacza to, że zadeklarowanie zmiennej var w którymkolwiek miejscu funkcji umożliwia odwołanie się do niej, ponieważ jej deklaracja jest wynoszona na początek zakresu funkcji. Ogranicza ją więc zakres funkcji. let, const - mają zakres blokowy. Oznacza to, że jeśli zmienna zadeklarowana przy użyciu let lub const użyta zostanie w bloku if {}, to poza tym blokiem będzie niedostępna (w przeciwieństwie do var). Ograniczone są zakresem najbliższego bloku, zdefiniowanego przez nawiasy {}. Ponadto ich deklaracja nie podlega hoistingowi, co oznacza, że nie można się do nich odwołać przed ich zadeklarowaniem (powstaje wtedy TZD - temporal dead zone). Zmienna stworzona przy użyciu let nie musi posiadać przypisanej wartości, bo możną ją później zmienić (np. let foo;). Stała stworzona przy użyciu const musi od razu posiadać przypisaną wartość (cost foo = "something"), bo nie można jej zmienić (choć można zmodyfikować jej wartość, jeśli jest obiaktem, tablicą - ponieważ const zapobiega zmianie bindowania, czyli zmianie typu wartości, a nie samej wartości). const boo = ["gruszka", "jablko"]; boo.push("malina"); console.log(boo) // "gruszka", "jablko", "malina"

Zaloguj się, by dodać odpowiedź