Autor | Zpráva | ||
---|---|---|---|
hulk Profil * |
#1 · Zasláno: 21. 12. 2013, 09:48:24
Zdravím, opět ze zvyku píšu sem. Mám malej problém a nechápu proč to nefunguje. Potřebuji aby se při zavolání přičetlo číslo, ale nevím z jakého důvodu to nefunguje. Ví někdo kde dělám chybu? Díky
function add(ks){ x += ks + 1; alert("Výsledek "+x); } |
||
Joker Profil |
#2 · Zasláno: 21. 12. 2013, 10:05:09
hulk:
Ono to funguje. Pokud tedy v proměnné x je před voláním funkce nějaké číslo.
Jestli to v nějaké situaci „nefunguje“ vůbec (při volání funkce se nic nestane), tak nejspíš proto, že proměnná x neexistuje.
Jestli to „funguje“, ale vypisuje neočekávané výsledky (jako třeba NaN), tak proto, že v proměnné x není číslo.
|
||
juriad Profil |
#3 · Zasláno: 21. 12. 2013, 10:09:14
Podařilo se mi vytvořit ukázku, kde ta funkce funguje. V tom kousku kódu není chyba. Problém nejspíš bude v místě, kde tu funkci voláš.
http://kod.djpw.cz/ggz |
||
hulk Profil * |
#4 · Zasláno: 21. 12. 2013, 10:10:51 · Upravil/a: hulk
Nefunguje :-)
Když by to bylo tak lehký, tak už to mám. Upravil jsem to na: function add(ks){ var x = ks; x += x + 1; alert("Výsledek "+x); } |
||
margin Profil * |
#5 · Zasláno: 21. 12. 2013, 10:18:55 · Upravil/a: margin
http://www.it-joker.cz/Pocitace-weby/67-Nefunguje-to--aneb-jak-napsat-dotaz.html
Nefunguje je popis jak (cenzurováno). Vyskočí aspoň alert? Pokud ano, co se vypíše? Co hlásí chybová konzola? Uvítali bychom odkaz na živou ukázku. hulk: Já jsem sice lepič kódu, a ne programátor, ale uvědom si, co se stane, když deklaruješ proměnnou. Tu proměnnou by bylo vhodné deklarovat mimo funkci add. |
||
hulk Profil * |
#6 · Zasláno: 21. 12. 2013, 10:25:57
function add_all(ks,cena){ var x = ks; x += x + 1; alert("Výsledek "+x); } |
||
juriad Profil |
#7 · Zasláno: 21. 12. 2013, 10:27:21
hulk:
var x = 0; |
||
hulk Profil * |
#8 · Zasláno: 21. 12. 2013, 10:27:29 · Upravil/a: hulk
margin:
„Tu proměnnou by bylo vhodné deklarovat mimo funkci add“ To máte pravdu, ale právě ve funkci mám zavolaný počet ke kterému potřebuju přičítat. Není to tak lehký Už vím kde je problém a vzhledem k tomu, že to musí být přičítáno z funkce, tak je to nereálný a tak má práce je ukončená. |
||
Joker Profil |
#9 · Zasláno: 21. 12. 2013, 10:38:30
hulk:
„právě ve funkci mám zavolaný počet ke kterému potřebuju přičítat“ Jestli ta proměnná nemá na konci funkce zaniknout, musí být deklarovaná v globálním kontextu. Ale globální proměnná nemusí být nutně deklarovaná mimo funkci, stačí ji pověsit na objekt window. Místo var x napsat window.x (a dát pozor, aby její název nepřepsal nějakou už existující vlastnost objektu window).
|
||
Kubo2 Profil |
#10 · Zasláno: 21. 12. 2013, 10:46:20
hulk, reakcia na [#4]:
Predstav si, že funkciu v [#4] zavoláš takto: add(3); Nasleduje výraz: // x += x + 1 x = 3 + 3 + 1; Pozn.: k navýšeniu hodnoty premennej ti poslúži aj obyčajná inkrementácia: ++x; // to isté: x++ |
||
hulk Profil * |
#11 · Zasláno: 21. 12. 2013, 10:51:25 · Upravil/a: hulk
Tak jsem to zkusil a nefunguje to. Vyhazuje mi výsledek 1 a to můžu klikat i 100x
function add_all(ks,cena){ window.x = ks; x += x + 1; alert("Výsledek "+x); } Kubo2: „++x; // to isté: x++“ Tohle jsem rozběhnul už nazačátku, ale jen pro můj test. Nic to neřeší protože chci potom přičítat i cenu a to tímhle spůsobem neudělám Problém vyřešen a děkuju za pomoc. Chci se ještě zeptat zda existuje v js neco co vytvoří mezery? Třeba 1000 zobrazí na 1 000 a podobně. |
||
Kubo2 Profil |
#12 · Zasláno: 21. 12. 2013, 12:23:12
hulk:
„Problém vyřešen a děkuju za pomoc.“ Aké je riešenie? „Chci se ještě zeptat zda existuje v js neco co vytvoří mezery? Třeba 1000 zobrazí na 1 000 a podobně.“ Nie je to ťažké vytvoriť. |
||
Časová prodleva: 10 let
|
0