Javascript, i++ és ++i közötti különbség?
var i = 0
function ido() {
alert('Hello világ ' + (i++) + '!');
window.setTimeout(ido, 1000);
csak tanulgatom még, de elakadtam ebben a ronda i++ nál.
szóval úgy kezdődik hogy létrehozunk egy i nevű változót 0 értékkel, majd egy idő nevű függvényt, ami tartalmaz egy alertet, heló világ szöveggel. na most a + csak akkor kell ha egy változót akarunk a szöveggel hozzákapcsolni? illetve i = 0 ++ azaz van egy nulla amihez hozzáadunk egyet, és időközönként hozzáadunk még egyet? a vége pedig az hogy ezt 1000x?
na meg ahogy olvasgattam van olyan hogy ++i . na az meg mi lenne? Köszi előre is.
Milyen könyvből tanulod? Vagy honnan? Ha még nem tanultál programozást, és magadtól próbálsz, célszerű lenne előbb az alap elméleti dolgokkal kezdeni, nem egyből belevágni a kódolásba, mert így nem csak ez lesz az, amit nem fogsz érteni.
Egyébként ez egy függvény, amit azt csinálja, hogy ha meghívod az ido() függvényt, akkor felugró ablakba 1000ms-el (1 másodperccel) a lefutás után kiírja felugró ablakba, hogy: Hello világ 1 !
A + hozzáfűzést jelent, a ++ értéknövelést.
var asd = 'Hello';
var fgh = 'world';
alert(asd + ' ' + fgh); // return: Hello world
Az i++ és a ++i ugyanaz, annyi különbséggel, hogy az
i++ csinál egy ideiglenes másolatot a változóról, annak emeli az értékét 1-el, és az ideiglenes változót fogja visszaadni
míg a ++i
növeli az i értékét 1-el, és azt adja vissza
Mind a 2 esetben ugyanaz történik, csak az utóbbi gyorsabb, mert kevesebb műveletet végez.
Valahogy így működik az i++ és ++i függvény.
ipp(i){
var temp=i // létrehozza az ideiglenes változót, aminek értéke az i
temp = i+1 // növeli az ideiglenes változó értékét 1-el
return temp // visszaadja az ideiglenes változó értékét
}
ppi(i){
i=i+1 // növeli az i értékét 1-el
return i // visszaadja az i-t
}
2. esetben nem pakolja új változóba az i-t
Amikor i++ van, akkor előbb megtörténik az i aktuális értékével és utána növekszik egyel az értéke, míg ++i esetében előbb növekszik i értéke és a megnövelt értékkel hajtódik végre a kijelölt művelet.
Pl a kérdező példájában ha az i++ van akkor 0-t fog kiírni, ha ++i, akkor pedig 1-et. A kiírás után mindkét esetben i=1 lesz.
A ++i megnöveli az i-t és a megnövelt értéket adja vissza.
Az i++ megnöveli az i-t, de a megnövelés előtti értéket adja vissza.
a = i++ //a=i; i=i+1
a = ++i //i=i+1; a=i
alert('Hello világ ' + (i++) + '!');
ugyan az mint a
alert('Hello világ ' + i + '!'); i+=1;
A + operátor szöveg esetén összekapcsolja az operandusokat, számok esetén összeadja őket.
A + operátornak semmi köze a ++ operátorhoz, ez ne zavarjon meg, két különböző dolog.
huh köszi szépen a gyors válaszokat, nagyon hálás vagyok érte.
első válaszolónak, igen tudom mit csinál teszteltem is, egy olyan egyszerű fügvényt is megértem perpill ami kidob egy alertet kérdéssel, majd válaszolhatok rá igennel v nemmel, és kidob rá egy választ, aztán jött ez a példa aztán meg is akadtam, sajnos pedig azért mert nem igazán tértek ki arra hogy mi mire jó. ITfactory nevű oldalon lehet venni oktató videókat. 35e ftért 20 óra az alapoktól.
Elméletit hol lenne érdemes tanulnom? Persze holnapi nap folyamán én is rákeresek majd, csak ha esetleg tudnád, megspórolnál holnapra számomra egy kis időt.:)
köszi még egyszer nektek.
Az maradt csak ki, hogy ez mind kifejezések kiértékeléséhez kapcsolódik. Az i értéke mindkét esetben megnő, de a kifejezésbe más kerül behelyettesítésre. Tehát ha az i++ vagy a ++i egy kifejezésben szerepel, akkor
a ++i helyére a már megnövelt érték kerül,
az i++ helyére pedig az eredeti érték, és a kiértékelés után nő csak az i értéke.
Pl.:
i=0
(5 + i++) jelentése:
kifejezés értéke: 5+0
i=i+1
(5 + ++i) jelentése:
i=i+1;
kifejezés értéke: 5+1
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!