Autor | Zpráva | ||
---|---|---|---|
robbie Profil |
#1 · Zasláno: 9. 10. 2016, 20:05:55
Ahoj, vysvetli mi prosim nekdo cast kodu, jež sem oznacil komentířem? Děkuji moc
<script> function myFunction() { var myNumber = 2; var txt = ""; while (myNumber != Infinity) { myNumber = myNumber * myNumber; txt += myNumber + "<br>"; // co prosim ošetřuje tento řádek nebo co ma za funkci, kdyz var txt je prázdné proč tedy +=myNumber// } document.getElementById("demo").innerHTML = txt; } </script> |
||
nightfish Profil |
#2 · Zasláno: 9. 10. 2016, 20:08:52
Protože txt je prázdné jenom při prvním průchodu smyčkou while.
Alternativně to jde napsat jako: txt = txt + myNumber + "<br>"; |
||
robbie Profil |
#3 · Zasláno: 9. 10. 2016, 22:32:54
nightfish:
to všechno chápu, že txt = txt + myNumber + "<br>"; je txt += myNumber + "<br>"; ale když je var myNumber = 2; tak tyhle dva řádky pořád nechápu. Přece pokud myNumber = myNumber * myNumber; // tak myNumber je = 2*2 a to je 4 txt += myNumber + "<br>"; // takže zde už je pořáde txt+= kde myNumber je 4, ale jakou částí kodu docílím, že funkce dále násobí již 16x16 a ne zase 2*2 (myNumber = myNumber * myNumber;) a v dalším průchodu funkcí už se násobí 256x256 atd., proč je na začátku tedy var txt="" prázdné a není prázdná var myNumber ?? Díky |
||
nightfish Profil |
#4 · Zasláno: 9. 10. 2016, 22:44:32
Když by sis tu smyčku rozbalil, tak to bude vypadat takto (v komentářích vypisuju aktuální hodnoty proměnných po provedení toho kterého řádku):
var myNumber = 2; // myNumber = 2; txt = undefined var txt = ""; // myNumber = 2; txt = "" myNumber = myNumber * myNumber; // myNumber = 4; txt = "" txt += myNumber + "<br>"; // myNumber = 4; txt = "4<br>" myNumber = myNumber * myNumber; // myNumber = 16; txt = "4<br>" txt += myNumber + "<br>"; // myNumber = 16; txt = "4<br>16<br>" myNumber = myNumber * myNumber; // myNumber = 256; txt = "4<br>16<br>" txt += myNumber + "<br>"; // myNumber = 256; txt = "4<br>16<br>256<br>" myNumber = myNumber * myNumber; // myNumber = 65536; txt = "4<br>16<br>256<br>" txt += myNumber + "<br>"; // myNumber = 65536; txt = "4<br>16<br>256<br>65536<br>" myNumber = myNumber * myNumber; // myNumber = 4294967296; txt = "4<br>16<br>256<br>65536<br>" txt += myNumber + "<br>"; // myNumber = 4294967296; txt = "4<br>16<br>256<br>65536<br>4294967296<br>" ... |
||
robbie Profil |
#5 · Zasláno: 10. 10. 2016, 09:15:59
...se opravdu omlouvám, sem asi natvrdlej.
Ale kdo nebo co řekne funkci, že nemá použít už var myNumber = 2; ale pak už za var myNumber=4; dosadit 4ku , pak 16ctku atd.? Ta hodnota pořáde dál přepisuje locální proměnnou var myNumber ? Děkuji |
||
Casero Profil |
#6 · Zasláno: 10. 10. 2016, 11:09:42
robbie:
Možná máš zmatek, co znamená var? |
||
nightfish Profil |
#7 · Zasláno: 10. 10. 2016, 16:07:50
robbie:
„Ale kdo nebo co řekne funkci, že nemá použít už var myNumber = 2; ale pak už za var myNumber=4; dosadit 4ku , pak 16ctku atd.?“ To je přesně to, co se děje na řádku 6 tvého kódu v [#1]. |
||
robbie Profil |
#8 · Zasláno: 10. 10. 2016, 16:32:41
nightfish:
Dělkuju moc za rady a váš čas. Fakt si toho vážim. |
||
Časová prodleva: 8 let
|
0