var
Deklaruje zmienną o zasięgu funkcji. To starszy sposób, dziś zastąpiony przez let i const.
Przykład
#function checkAccess(points) {
if (points >= 100) {
var status = 'premium'
}
return status
}
console.log(checkAccess(150))
console.log(checkAccess(20))Definicja i zastosowanie
#var to najstarszy sposób deklarowania zmiennych w JavaScript. Znajdziesz go w starszych tutorialach, bibliotekach i kodzie sprzed 2015 roku, dlatego warto rozumieć, jak działa, nawet jeśli sam go nie używasz.
Zmienna z var ma zasięg całej funkcji, a nie bloku. Zadeklarowana wewnątrz if albo pętli jest widoczna także poza nimi. Do tego deklaracja jest „wynoszona” (hoisting) na początek funkcji: zmienna istnieje już od pierwszej linii i ma wartość undefined, zanim program dojdzie do przypisania.
Tę samą nazwę można zadeklarować przez var wiele razy bez żadnego błędu. W połączeniu z zasięgiem funkcji łatwo wtedy o przypadkowe nadpisanie wartości, dlatego w nowym kodzie używaj let i const.
Składnia
#var name
var name = value
var name1 = value1, name2 = value2Więcej przykładów
#console.log(bonus)
var bonus = 50
console.log(bonus)for (var i = 0; i < 3; i++) {
setTimeout(() => console.log('var:', i), 0)
}
for (let j = 0; j < 3; j++) {
setTimeout(() => console.log('let:', j), 0)
}Wszystkie funkcje z pierwszej pętli widzą tę samą zmienną i, która po zakończeniu pętli ma wartość 3. let tworzy nową zmienną dla każdego obrotu.
Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- W nowym kodzie nie używaj
var.leticonstmają przewidywalny zasięg blokowy i zgłaszają błąd przy użyciu zmiennej przed deklaracją. - Przerabiając stary kod, zamieniaj
varnaletostrożnie. Jeśli zmienna była używana poza blokiem, w którym ją zadeklarowano, przenieś deklarację wyżej. - W zwykłym skrypcie (poza modułem)
varna najwyższym poziomie tworzy właściwość obiektuwindow.leticonsttego nie robią.
Powiązane hasła
#- letDeklaruje zmienną o zasięgu blokowym, której wartość można później zmienić.
- constDeklaruje stałą o zasięgu blokowym. Takiej zmiennej nie można ponownie przypisać wartości.
- functionDeklaruje nazwaną funkcję: blok kodu z parametrami, który można wywoływać wiele razy i który może zwrócić wynik.
- setTimeout()Uruchamia funkcję jeden raz, po upływie podanej liczby milisekund.
Widzisz błąd albo brakuje przykładu? Napisz do nas.