Javascript operátor

Programovacie jazyky, rady, poradňa...
exploited154
Medium Expert
Medium Expert
Príspevky: 123
Registrovaný: 05 sep 2010, 19:32

Javascript operátor

Príspevok od používateľa exploited154 »

Ahojte mam problem... keď chcem spočítať dve premenné napr:

Kód: Vybrať všetko

var a=10;
var b=5;
var c=a+b;

tak mi ich nesčíta ale mi ich len jednoducho vypíše vedľa seba... neviete ako by sa to dalo napraviť ? Ďakujem za odpovede :)
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa weroro »

Musí ti ich s čítať. Obe hodnoty sú typu Number, mne to normálne funguje. Chyba je niekde inde.


Môžeš ale skúsiť toto:

Kód: Vybrať všetko

var a = 10;
var b = 5;
var c = parseFloat(a) + parseFloat(b);
peefg
Novice
Novice
Príspevky: 4
Registrovaný: 09 aug 2011, 10:22

Re: Javascript operátor

Príspevok od používateľa peefg »

exploited154 napísal:Ahojte mam problem... keď chcem spočítať dve premenné napr:

Kód: Vybrať všetko

var a=10;
var b=5;
var c=a+b;

tak mi ich nesčíta ale mi ich len jednoducho vypíše vedľa seba... neviete ako by sa to dalo napraviť ? Ďakujem za odpovede :)

Kód: Vybrať všetko

var a=10;
var b=5;
c=a+b;

a vypíšeš ci céčko...
exploited154
Medium Expert
Medium Expert
Príspevky: 123
Registrovaný: 05 sep 2010, 19:32

Re: Javascript operátor

Príspevok od používateľa exploited154 »

Vďaka weroro :)

peefg pri tvojom spôsobe mi stále vypisuje 105 namiesto 15 :D
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa weroro »

peefg: To čo si poslal za kravinu? Nie len že to je to isté ako poslal exploited154 ale ešte tam nemáš ani deklarovanú premennú var.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa audiotrack »

javascript nie je deklaratívny jazyk. Premenné nemusíš deklarovať. Mňa by skôr zaujímalo čo má za interpreter (prehliadač) keď mu to nespočíta. Zrejme to nie je celý kod, lebo by to malo zrátať
Ovecka
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1227
Registrovaný: 25 aug 2005, 0:57

Re: Javascript operátor

Príspevok od používateľa Ovecka »

toto si skusal ? :D
var c = eval(a) + eval(b);
peefg
Novice
Novice
Príspevky: 4
Registrovaný: 09 aug 2011, 10:22

Re: Javascript operátor

Príspevok od používateľa peefg »

exploited154 napísal: peefg pri tvojom spôsobe mi stále vypisuje 105 namiesto 15 :D
tak neviem potom, mne to logom vypíše 15
weroro napísal:peefg: To čo si poslal za kravinu? Nie len že to je to isté ako poslal exploited154 ale ešte tam nemáš ani deklarovanú premennú var.
Neposlal som žiadnu kravinu, ale v poriadku...
audiotrack napísal:Mňa by skôr zaujímalo čo má za interpreter (prehliadač) keď mu to nespočíta.
To aj mňa zaujíma.
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa weroro »

audio: Možno som sa zle vyjadril. Ak by si mal pred sebou toto:

Kód: Vybrať všetko

a = 1;
var a = 1;
Ktoré z tých dvoch je správne zapísané? Samozrejme a = 1; je v poriadku a prehliadač to zožerie ale pokiaľ má byť premenná deklarovaná poriadne, tak tam to var dám.

peefg: Poslal si to isté ako poslal on: duplicita = kravina. Ale áno, prepáč, nemal som sa tak hrubo vyjadriť.

Sheepdog: :D

//autoeditácia príspevku (23 Mar 2012, 12:36)
Ešte na margo toho var

aký je podľa Vás rozdiel v tomto?

Kód: Vybrať všetko

var a = 1;

function test()
{
    var a = 5;
}

test();
    
alert(a); // 1 

Kód: Vybrať všetko

a = 1;

function test()
{
    a = 5;
}

test();
    
alert(a); // 5 
ropman
Medium Professional
Medium Professional
Príspevky: 1250
Registrovaný: 12 apr 2010, 21:07

Re: Javascript operátor

Príspevok od používateľa ropman »

audiotrack napísal:javascript nie je deklaratívny jazyk. Premenné nemusíš deklarovať. Mňa by skôr zaujímalo čo má za interpreter (prehliadač) keď mu to nespočíta. Zrejme to nie je celý kod, lebo by to malo zrátať
urcite je to zjednoduseny kod, predpokladam ze v realnej aplikacii su to stringy a preto to spoji retazce namiesto scitania...

Kód: Vybrať všetko

"1"+"1" = "11"
 1 + 1 = 2
cize ako uz bolo napisane, staci pouzit parseFloat alebo parseInt aby boli operandy cisla a nie stringy
Ovecka
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1227
Registrovaný: 25 aug 2005, 0:57

Re: Javascript operátor

Príspevok od používateľa Ovecka »

weroro comu sa smejes :D to je sefova oblubena funckia ked mu to nechce ratat :D
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Javascript operátor

Príspevok od používateľa BX »

weroro: var deklaruje lokálnu premennú. Keď nedeklaruješ cez var, vytvoríš globálnu, ktorá je prístupná úplne všade (a teda sa zmení aj vo funkcii)
V tom prvom prípade riešiš lokálne premenné. V druhom vytvoríš globálnu a potom ju zmeníš.
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa TommyHot »

weroro napísal: Ktoré z tých dvoch je správne zapísané? Samozrejme a = 1; je v poriadku a prehliadač to zožerie ale pokiaľ má byť premenná deklarovaná poriadne, tak tam to var dám.
Ako deklarovana poriadne? Pokial script vyslovene potrebuje, tak tam dam var, ak ho tam nedam tak sa premenna deklaruje aj bez toho. To zavisi od konkretneho pouzitia, davat vsade var vobec nie je potrebne.

//autoeditácia príspevku (23 Mar 2012, 14:04)
BX napísal:weroro: var deklaruje lokálnu premennú. Keď nedeklaruješ cez var, vytvoríš globálnu, ktorá je prístupná úplne všade (a teda sa zmení aj vo funkcii)
V tom prvom prípade riešiš lokálne premenné. V druhom vytvoríš globálnu a potom ju zmeníš.
Vobec nie je pravda, ze var deklaruje lokalnu premennu. Ak das var mimo funkcie tak je to globalna premanna (rovnako ked tam var nedas). Ak das var do funkcie tak je to lokalna premenna (rovnako ked tam var nedas).
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa audiotrack »

s tým tak celkom nesúhlasím, BX dobre napísal že var definuje local scope (neviem ako sa to prekladá v našej lit.) a v podstate tým určuješ že ide o lokálnu premennú. Ak ju ako "lokárnu" určíš v global scope, tak áno, nehrá to rolu. Ale v tých funkciach to už rolu hrá (rovnako tak v cykloch, nie je jedno či dáš for(i=1; i<5; i++) alebo for(var i=1; i<5; i++) )
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa TommyHot »

Si si isty? Tu je vypis z konzoly:

Kód: Vybrať všetko

for(i=1; i<5; i++){console.log(i)}
1
2
3
4
undefined

Kód: Vybrať všetko

for(var i=1; i<5; i++){console.log(i)}
1
2
3
4
undefined
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

function f (){
    for (i=0; i<5; i++);  //nedefinoval som lokálnu viditeľnosť pre cyklus, ovplyvňujem globálnu premennú
}
var i = 2;  //definujem si i
f ();       //tento cyklus mi premennú zmeni
console.log(i);  //vypíše 5

///////////////////////////////////////////

function g (){
    for (var i=0; i<5; i++);  //definoval som viditelnost iba na cyklus
}
var i = 2;  //resetnem si hodnotu premennej
g ();       //tento cyklus mi premennú uz NEzmeni
console.log(i);  //vypíše 2
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Javascript operátor

Príspevok od používateľa TommyHot »

No ano, ale to uz potom zavisi od konkretneho pouzitia (co som pisal uz v mojej prvej reakcii). Ty si to napisal takym stylom, ako by to bolo stale tak.

// ale samozrejme rozumieme sa, len sa dotahujeme za slovicka...
Napísať odpoveď