Bug #004
🪲 Znajdź buga
var n = 1
if (n === 1) {
var n = 2
console.log(n)
}
console.log(n)
Jaka wartość zostanie zalogowana do konsoli w lini 5, a jaka w 8?
🧪 Rozwiązanie
let n = 1
if (n === 1) {
let n = 2
console.log(n)
}
console.log(n)
W przykładzie z błędem, zadeklarowanie zmiennej z użyciem wyrażenia var
, spowoduje zalogowanie konsoli w obu miejscach wartość 2
.
Nie jest to błąd per se, o ile jesteśmy świadomi własności działania deklaracji var
, która to deklaruje zmienną o zasięgu globalnym.
Znacznie lepszym pomysłem dla deklaracji zmiennych będzie używanie wyrażenia let
. Wtedy zasięg działania jest ograniczony do bloku kodu ({}
), wewnątrz którego let
zostało zdefiniowane.
Używając let
, do konsoli zostaną zalogowane kolejno, wartości 2
i 1
.
🎢 Plac zabaw
Otwórz edytor w nowym oknie📑 Linki
❤️ Podobają Ci się bugi JS?
Podziel się linkiem ze znajomymi:
https://codisity.pl/100-bugow-js