e-gradiva | HTML | CSS | JavaScript | Načrtovanje | |||||
SERŠ Maribor | Iskanje | Primeri |
JavaScript za razliko od nekaterih drugih programskih jezikov ne zahteva določitev tipa spremenljivke. Celo ne dovoljuje definiranja. Ista spremenljivka se lahko v toku izvajanja programa uporabi za shranjevanje različnih podatkov.
var spremenljivka=45 //celo število .... spremenljivka="Pozdravljen" //niz .... spremenljivka=true //logična vrednost ....
Preprostost JavaScript pa je lahko dvorezen meč. Po eni strani osvobaja napora po eksplicitnem navajanju tipa spremenljivke, po drugi strani pa so določene operacije dovoljene samo z določenimi tipi podatkov (npr. deljenje samo za števila) in napačen tip lahko povzroči nenadejene posledice.
Število se lahko spremeni v ekvivalentno vrednost niza. JavaScript teži k temu da uporablja nize, kadar se pojavijo izrazi s mešanimi vrstami podatkov. Najlažje števila spremenimo v nize tako da uporabimo prazen niz v dodatnih operacijah. Številu dodamo prazen niz, tako spremenimo število v ekvivalentni niz.
("" + 2500) // rezultat = "2500"
Simbol +
je eden od hitrih in enostavnih načinov JavaSkript za združevanja nizov.
Večnamenska uporabnost ter praktičnost JavaScript je med najboljšimi in zato je med najbolj priljubljenimi jeziki širom sveta. Čeprav nam ne zna brati misli je zelo uporaben in z malo znanja lahko pridemo do želenih rezultatov.
Kako se obnaŠa znak +
? V preprosti aritmetični izjavi to združi dve številki skupaj, ter poda želeni rezultat, kot prikazuje spodnji primer.
3 + 3 // rezultat = 6
V primeru, da je ena od teh številk niz, JavaScript samodejno spremeni tip, drugo vrednost pa spremeni v niz. V primeru te zamenjave, izgleda tako kot kaže spodnji primer.
3 + "3" // rezultat = "33"
Niz iz druge vrednosti prevlada, ima prioriteto druga operacija. Prva vrednost se samodejno spremeni v niz, in rezultat združenja je potem "33". Naredimo primer in vstavimo še eno število, potem izgleda, kot prikazuje spodnji izraz.
3 + 3 + "3" // rezultat = "63"
Zgornji izraz izgleda povsem nesmiselno, vendar se skriva za njim povsem logičen rezultat. Izraz je določen od leve proti desni. Prvi plus predstavlja navadno seštevanje številk 3+3, kar je 6. Ampak ko k 6 dodamo "3", JavaScript zažene z uporabo postopka zdruŽevanja nizov, ko pride do prvega niza (v tem primeru "3"). Število 6 se spremeni v niz in dva niza se združita v "63". Večina skrbi o datotečnih tipih je osredotočenih na postopke s predmetom Math
. Kakorkoli, nekateri postopki predmetov zahtevajo enega ali več parametrov doloČenega datotečnega tipa. Ker JavaScript zagotavlja številne poti za spreminjanje spremenljivk iz enega tipa v drugega. Zelo pomembno vlogo imajo tukaj spremembe tipov.
V toku izvajanja smo s sestavljanjem nizom dobili številčno vrednost, ki pa je tipa string
, npr.:
3 + "4" // rezultat = "34"
Tudi naslednji primer pa spremeni število v niz:
34 + "" // rezultat = "34"
Za nadaljnje delo se želi vrednost uporabiti kot število. Lahko, da bo JavaScript samodejno spremenil tip v število, lahko pa tudi da ne. Najenostavnejši način za spreminjanje je:
+ "34" // rezultat = 34
Kaj se zgodi če se logični vrednosti doda niz:
true + "bla" // rezultat = "truebla" false + "bla" // rezultat = "falsebla"
Vidimo, da ima tip niz prednost. Logična vrednost true se zato spremeni v niz true, operacija + pa je združila niza.
Pri aritmetičnih operacijah z logičnimi vrednostmi se vrednost true
spremeni v numerično 1
, false
se spremeni v numerično 0
. Dobimo:
true+5 // rezultat = 6 false*33 // rezultat = "0"
Pri logičnih operacijah se numerične vrednosti 1 in večje spremenijo v logično vrednost true
, manjše vrednosti pa v false
:
true && 5 // rezultat = true
Rezultat operacije med null
in nizi je null
, med logičnimi vrednostmi in null
je false
in pri aritmetičnih operacijah pa je rezultat 0
.
Za uporabo številskih nizov v aritmetičnih operacijah, je potrebno pretvoriti število predstavljeno kot niz v število s katero JavaSkript zna računati. Večina operacij JavaScript in matematičnih postopkov z veseljem sprejemajo nizno predstavitev števil in z njimi računajo brez pritožb. Lahko pa se pride do podatkovnega tipa, ki je nezdružljiv. Na primer, ko poskušamo dopolniti seštevanje z operatorjem +
(ki je tudi nizni povezovalni operator). Zaradi tega je potrebno v mnogih primerih pretvoriti te nizne vrednosti v vrednost številskega tipa za matematične operacije.
Če je numerična vrednost shranjena kot niz, npr pri vnašanju v tekstovno okence, imajo skripti težave s posredovanjem teh vrednosti v matematične operacije. Jezik JavaScript ima 2 vgrajeni funkciji za spreminjanje niznih vrednosti v prava števila: parseInt()
in parseFloat()
:
parseInt (niz [,osnova]) parseFloat (niz [,osnova])
Funkcija parselnt()
vrne katerikoli celo število ki jo lahko izvleče iz podanega niza: praseFloat() funkcija vrne število z plavajočo piko ki je lahko izvlečena iz niza.
Med celimi števili (integer) in realnimi števili (floating-point) je razlika. Cela števila ne morejo imeti vmesnih vrednosti oziroma decimalnih mest, realna pa zavzemajo med celimi števili tudi vmesne vrednosti. Operaciji by
in and
v JavaScript ne razlikujeta med celimi in realnimi števili. Število je število. Pazljivi na razliko moramo biti le ko parameter zahteva celo število, ker ne more operirati z vmesnimi vrednostmi.
Primer:
Za pomik okna z drsnikom potrebuje ukaz scroll()
cela števila saj se lahko pomika le za cele piksle.
parseInt("42") // rezultat = 42 parseInt("42.33") // rezultat = 42 parseFloat("Micka") // rezultat = NaN
Ta funkcija vrne realno število, vsa mesta za decimalno vejico (piko) so vsa števila zanemarjena in ni zaokroževanja (za to se lahko uporabi matematična funkcija).
Funkcija parseFloat()
pa vrne kot rezultat, če je le možno, realno število.
parseFloat("42") // rezultat = 42 parseFloat("42.33") // rezultat = 42.33
Ker se spremembi nanašata na rezultate, lahko enastavno vstavimo celotno funkcijo kjer potrebujemo niz spremenjen v število. Torej spreminjanje prejšnjega primera v katerem je eno izmed 3 števil blio niz, se celoten izraz nanaša na želen rezultat.
3 + 3 + parseInt("3") // rezultat = 9
Funkcijo parseFloat()
se lahko uporabi tudi za pretvarjanje števil med različnimi številskimi sestavi, vendar samo za cela števila. Sledeči primer prikazuje spremembe niza v število. Ta funkcija je uporabna tudi, če je potrebno decimalno število iz niza ki se začne z več kot eno ničlo. Ponavadi vodilna ničla prestavlja osmiško število. Z uporabo funkcije pa se zahteva pretvorbo iz točno določenega številskega sestava in število je pretvorjeno pravilno:
parseInt("022") // rezultat = 16 parseInt("020",10) // rezultat = 20 parseInt("A5") // rezultat = NaN parseInt("A5", 16) // rezultat = 165
Za pretvorbo števil v nize se lahko uporabi postopek toString
:
22.toString() // rezultat = "22"
Ta postopek ima eno dodatno še možnost uporabe osnove, ki je dodan kot parameter postopka. Sledi primer pretvarjanja številčne vrednosti iz desetiškega števila v šestnajstiško število, predstavljeno kot niz:
var x = 31 var y = x.toString(16) // rezultat = "1F"
Najpogostejša uporaba globalne funkcije eval()
je pretvarjanje tekstovne reference v pravo referenco predmeta. Katerikoli izraz ali ukaz JavaScript se lahko izračuna s funkcijo eval()
.
domena = "www.sersmb.net" pot = "w3" datoteka = "eval.html" location.href = eval("http://" + domena + "/" + pot + "/" + datoteka)
SERŠ Maribor : Strokovna gimnazija : 2003 : Tomaž Hauzer