Kezdőoldal » Számítástechnika » Weblapkészítés » Javascriptben ha egy innerHTML...

Javascriptben ha egy innerHTML-nek egy integer értéket adok meg, akkor stringként kiírja. Ez csak a fordító értelmessége, vagy azért ezt így nem helyes csinálni?

Figyelt kérdés

2014. febr. 14. 09:57
 1/9 anonim ***** válasza:
A JavaScript ilyen, dinamikusan kezeli a típusokat. Javascriptben ezt lehet így csinálni.
2014. febr. 14. 12:07
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
és hogyan tudhatom meg, hogy mi a default adat típus, és mi a default átalakítás?
2014. febr. 14. 13:23
 3/9 uno20001 ***** válasza:

Ha simán így definiálod:

var x;

akkor az x típusa undefined lesz.

Mi az, hogy default átalakítás?

Nyilván ha kiiratsz, akkor string lesz, ha aritmetikai műveleteket végzel, akkor szám, stb..

2014. febr. 14. 14:29
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

dinamikus a tipuskezelése, a tipusa az aminek éppen használod.


var a = '3'; // ugye a '3' az string

alert(a*5); // itt már számként értelmezi, kiírja h 15

alert(a+' macska'); // itt meg már megint string

alert(a.length); // mint a stringeknek a hossza is lekérdezhető


tehát a típusa az aminek éppen lennie kell a művelet elvégzéséhez.

2014. febr. 14. 15:03
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:
de + jel van stringek és számok között is! mi alapján dönti el, hogy akkor melyiket használja?
2014. febr. 14. 15:34
 6/9 anonim ***** válasza:
na látod rátapintottál a gyengén tipusos nyelvek ellenzőinek kedvenc problematikájára. a motor dönti el az alapján, hogy éppen mire van szüksége az adott parancs végrehajtásához. éppen emiatt lehetnek olyan helyzetek, hogy te integerként szeretnéd kezelni, de a motor midnenáron stringnek erőlteti. ritka mint a fehér holló, de előfordulhat ami hibaforrás lehet.
2014. febr. 14. 15:44
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:

amúgy:


var a = '3';

var b = '4';


alert(a+b);


megnézi, hogy értelmezhetőek-e számként. ha igen akkor aritmetrikai műveletként értelmezi a + jelet, tehát az eredmény 12 lesz.



var a = '3';

var b = '4b';


alert(a+b);


itt ismét megnézi. azt találja, hogy a második nem értelmezhető számként, tehát string. string és integer között aritmetrikai művelet nem végezhető, tehát feltételezi, hogy te stringként használod jelen esetben az "a" értékét, ezért összefűzi őket. az eredmény így nem 12 mint az első esetben hanem "34b"

2014. febr. 14. 15:47
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

"A kérdező kommentje:

és hogyan tudhatom meg, hogy mi a default adat típus, és mi a default átalakítás?"


A Javascript dokumentáció igazít el ebben valamennyire az általános esetekre.

[link]

Ebben az esetben pedig: az innerHTML az Element interface egy tulajdonsága, ami stringként van deklarálva.

[link]

2014. febr. 14. 20:13
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
de 16-os számrendszerben van értelme a b-nek is számként :)
2014. febr. 15. 00:28

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!