Zmienna let w pętli for

Odpowiedz Nowy wątek
2020-02-12 17:29

Rejestracja: 3 miesiące temu

Ostatnio: 1 dzień temu

0
for(let i =0; i <3; ++i){
    setTimeout(() => console.log(i), 0);
}

jeśli używamy for w pętli to co się tak naprawdę dzieje?
tworzy się nowa zmienna i? z wartością z poprzedniej iteracji? skoro wynik wykonania powyżej jest poprawany.

Pozostało 580 znaków

2020-02-12 17:33

Rejestracja: 3 miesiące temu

Ostatnio: 16 minut temu

1

Jak zmienna pętli for tak naprawdę działa

Pozostało 580 znaków

2020-02-12 20:10

Rejestracja: 3 miesiące temu

Ostatnio: 1 godzina temu

1

Pętla for to tak naprawdę skrótowiec dla

let  i = 0; //inicjalizacja
while(i<10){//warunek
....
i++; //zmiana
}

Pisanie tylu lini dla tak często powatrząjacej sie czynności było by katorgą, wiec for zamyka to w sobie jako
for(<inicjalizacja> ; <warunek> ; <zmiana>). Miedzy <> można wpisać każde wyrażenie jakie da się zapisać bez grupujących klamerek(choć pewnie to nie do końca prawda). Jak łatwo sie domyślić, cześć przed pierwszym średnikiem wykonywana jest tylko raz, przed wykonaniem pętli, warunek sprawdzany jest na początku pętli, a zmienia wartości następuje na samym końcu.

Dość ważne jest to żeby używać w for let zamiast var. let zyją miedzy klamerkami jak w normalnych jezykach, natomiast wszystkie vary są przenoszone na góre funkcji i można dostać kolizje przez to.

edytowany 2x, ostatnio: _flamingAccount, 2020-02-13 06:12

Pozostało 580 znaków

2020-02-12 23:03

Rejestracja: 5 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Warszawa

0

jeśli używamy for w pętli to co się tak naprawdę dzieje?

Masz na myśli: "let w pętli"?


tworzy się nowa zmienna i?

Według tego artykułu MDN w podanym przez Ciebie kodzie tworzy się nowa zmienna i. Cytat (pogrubienie moje):

for ([initialization]; [condition]; [final-expression])
statement

initialization
An expression (including assignment expressions) or variable declaration evaluated once before the loop begins. Typically used to initialize a counter variable. This expression may optionally declare new variables with var or let keywords. Variables declared with var are not local to the loop, i.e. they are in the same scope the for loop is in. Variables declared with let are local to the statement.


z wartością z poprzedniej iteracji?

W podanym przez Ciebie kodzie zmienna i nie ma wartości z poprzedniej iteracji ani w momencie utworzenia, ani w żadnej iteracji pętli. Otrzymuje ona na koniec każdej iteracji nową wartość. MDN pisze o tym tak:

for ([initialization]; [condition]; [final-expression])
statement

final-expression
An expression to be evaluated at the end of each loop iteration. This occurs before the next evaluation of condition. Generally used to update or increment the counter variable.


skoro wynik wykonania powyżej jest poprawany.

Co to znaczy "poprawny" według Ciebie w tym kodzie?


edytowany 6x, ostatnio: Silv, 2020-02-12 23:05

Pozostało 580 znaków

2020-02-12 23:28

Rejestracja: 3 miesiące temu

Ostatnio: 1 dzień temu

0

no właśnie się zastanwiałem jaka jest różnica między var a let. Co się dzieje. Jeśli używamy var to bodajże js używa tej samej zmienej jeśli się nie mylę.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0