e-gradiva | HTML | CSS | JavaScript | Načrtovanje | |||||
SERŠ Maribor | Iskanje | Primeri |
JavaScript računa v dvojiškem številskem sestavu. Nam ubogim ljudem pa omogoča delo z tudi desetiškimi (osnova 10), šestnajstiškimi (osnova 16), osmiškimi (osnova 8) števili. Pri delu pa je potrebno upoštevati nekaj pravil, da lahko pravilno delamo s temi vrednostmi.
Desetiška števila se ne smejo začeti s števko nič (0
). Če stran vpraša uporabnika, da vnese decimalno število, ki se začne z nič (0
), mora skript te števke izbrisati in jih zamenjati z določenimi znaki preden začne delati z kakšnimi matematičnimi operacijami. Šestnajstiška števila so izražena na začetku z 0x
ali 0X
. Pozor! na začetku je število nič 0
in ne črka o
). Števke med A in F so lahko podane kot velike ali male črke, kakorkoli si jih pač želite. Tu je nekaj šestnajstiških števil:
0X1AA 0X2c3 0xBBB
Ne zamešajte šestnajstiških števil s šestnajstiškimi zapisi, ki so uporabljeni kot vrednosti za barvne lastnosti v spletnih dokumentih. Te vrednosti so podane samo v posebnih šestnajstiških decimalnih vrednostih, ki se začnejo s simbolom #
in nadaljujejo z tremi šestnajstiškimi vrednostmi, ki so med seboj spojene (na primer #A155CC
).
Osmiške vrednosti so zapisane z vodilno 0
, ki ji sledijo števke med 0 in 7. Osmiška števila so sestavljena samo iz celih števil.
Števila so večkrat prikazana kot nizi. Da bi pa jih lahko uporabili v matematičnih operacijah, jih je potrebno pretvoriti v prava števila, torej tipa number
. Mnogi postopki v JavaScript mirno sprejmejo števila, ki so tipa string
in znajo z njimi pravilno operirati brez vseh težav in napak. V mnogih primerih se lahko za pretvorbo uporabi že preprosti operator za dodajanje in spajanje +
. Pogosto je uporabljen v matematičnih operacijah, ki jih izvajamo nad števili, ki smo jih dobili iz vnosnih polj <input type="text" />
, ki imajo vrednost lastnosti value
tipa string
.
Za mnoge matematične operacije pa je potrebno spremeniti število tipa string
v število tipa number
.
Za pretvorbo ima JavaScript na voljo dve funkciji:
parseInt(string [,osnova]) parseFloat(string [,osnova])
Zgled za ti funkciji je il dobljen v jeziku Java. Izraz parsing
ima mnogo pomenov v programiranju. En izmed njih je izvleči. Funkcija parseInt()
vrne celoštevilčno vrednost, funkcija parseFloat()
pa realno število.
Primeri:
parseInt("88") // rezultat = 88 parseInt("44.77") // rezultat = 44 parseFloat("44.56") // rezultat = 44.56 parseFloat("73") // rezultat = 73 parseFloat("jure") // rezultat = NaN
Obe funkciji ima drugi opcijski parameter, ki določa osnovo števila, ki je vsebovano v nizu. To je posej pomembno, če je prva števka v nizu 0
, seveda vodilna ničla predstavlja osmiško število. S tema funkcija pa lahko takšno število predstavite tudi kot desetiško.
parseInt("011") // rezultat = 9 parseInt("011",10) // rezultat = 11 parseInt("F1") // rezultat = NaN parseInt("F1", 16) // rezultat = 241
Iz nizov, ki vsebujejo števila lahko s tema funkcija dobimo števila. Na žalost samo. Če se začenjajo s števko. V nasprotnem primeru postopka vrneta vrednost NaN
.
V večini postopkov, ki zahtevajo podatke tipa string
, JavaScript samodejno v ta tip spremeni podatke tipa number
.
Obstaja kar nekaj poti, ki spremenijo številčno vewdnost v niz. Že od nekdaj je znan način s uporabo praznega niza, ki se mu pripne število z operacijo za spajanje.
Primer izračuna število števk v številu.
("" + 19450).length // rezultat = 5
Lepša pot je uporaba postopka toString()
.
19450.toString() // rezultat = "19450" (19450.toString()).length // rezultat = "5"
Pri predstavitvi števila je mogoče uporabiti osnovo števila. Postopek se lahko uporablja za pretvorbo med številskimi sestavi.
var desetisko= 34 var sestnajstisko = desetisko.toString(16) // rezultat = "22"
Pri uporabi postopka toString()
za pretvarjanje med številskimi sestavi je potrebno biti pazljiv. Rezultat postopka je niz tipa string
. Rezultata tako ni mogoče neposredno uporabiti nato v matematičnih postopkih in operacijah.
JavaScript je zelo prilagodljiv jezik. To je zelo koristno, včasih pa lahko tudi povzroči težave. V kolikor nad vrednostjo "jure" izvedemo postopek parseFloat()
, je to mogoč postopek. Rezultat operacije je seveda število. Toda to število je NaN
. Za preverjanje, če je število res število, se uporablja globalna funkcija isNaN()
, ki za neštevično vrednost števila vrne true
, sicer pa false
.
SERŠ Maribor : Strokovna gimnazija : 2004 : Mitja Račnik