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?
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..
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.
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"
"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.
Ebben az esetben pedig: az innerHTML az Element interface egy tulajdonsága, ami stringként van deklarálva.
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!