JavaScript
Sisukord
Skriptimiskeelest
JavaScript on skriptimiskeel, mille juured pärinevad ECMAScript keelest. JavaScripti ei maksa segi ajada Javaga. Kuigi nad on paljuski sarnased, on nad siiski erinevad. See skriptimiskeel leiab enim kasutust veebis kasutaja brauseris käivitatava skriptina. Seda keelt kasutatakse ka väljaspool brauserit, näiteks PDF dokumentides ja ka näiteks Windowsi desktopil kuvatavates vidinates (kellad, kalendrid, aku mahutavuse kuvajad jms).
Oli aegu, mil JavaScripti oli raske kirjutada, sest puudusid arvestatavad vahendid veaotsinguks. Tänapäeval on enamus brauseritel selleks vahendid olemas.
Rasvane kiri Google Chrome - Menu -> Tools -> Developer Tools
Firefox - Laiendusena installeeritav Firebug
Opera - Menu -> Page -> Developer Tools
Kuhu mis ja kuidas
JavaScript algab ja lõppeb script tag'iga (tagiks nimetatakse HTML keeles kõiksugu elemente).
<script>
// javascripti kood
</script>
Kuigi eelnev kood töötab, nõuab validaator (standard internetis validator.w3.org, et kõik brauserid mõistaksid lehte sama moodi) type parameetri olemasolu.
<script type="text/javascript">
// javascripti kood
</script>
Validaator tahab pahatihti analüüsida ka script tag'ide vahel olevat infot, mistõttu tuleks see tema eest pigem peita. HTML validaator on siiski HTML validaator. Selleks on järgmine nipp:
<script type="text/javascript">
<!-- //
// javascripti kood
// -->
</script>
Internet Explorer 8.0 nõuab endiselt iga rea lõppu semikoolonit (;), mis teiste brauserite puhul enam rusikareegel ei ole.
Sisu kommenteerimine
JavaScripti koodi kommenteerimine järgid teiste keelte üldtavasid.
<script type="text/javascript">
// See on kommentaar, mida koodis kuvatakse kuid javascripti käivitamisel ei rakendata
// alert( 'Tere maailm!' );
/* See on mitme realine kommentaar
funktsiooni alert( 'Tere maailm!' ) ei käivitata, sest ta kuulub kommentaari sisse */
</script>
Muutujad
JavaScriptis ei ole muutujate ees tähiseid. Muutujate tüüpe erinevalt defineerima ei pea. Omistamise hetkel omistatakse muutujale vastavalt väärtusele tema tüüp.
Tüübid on järgmised:
<script type="text/javascript">
muutuja = "Tere maailm!"; // tekstiline väärtus
muutuja = 24.7 // komaga arv
muutuja = 2010 // täisarv
muutuja = true // tõene või väär
muutuja = null // muutujal pole mingit väärtust
muutuja = [] // massiiv
muutuja = {} // objekt (räsi massiiv)
</script>
Muutujatega tehteid tehes peab arvestama, et JavaScript võib neid valesti mõista. Näiteks võib arvu 20 defineerida nii numbrimiselt kui tekstiliselt.
<script type="text/javascript">
a = 10;
b = "20";
c = a + b // c väärtus on 1020
</script>
Kui vaja stringist arv teha, siis kasutame funktsiooni parseInt.
<script type="text/javascript">
a = 10;
b = "20";
c = parseInt(a) + parseInt(b) // c väärtus on 30
</script>
Objekt on see, mis teeb JavaScriptist võimsa skriptimiskeele. Objekt võib endas hoida palju rohkem infot, kui näiteks massiiv. Massiivis on jada väärtuseid, mille indeksid algavad nullist ja lõppevad kohal n.
<script type="text/javascript">
kes = ["mina", "sina", "tema", "meie", "teie", "nemad"]
alert( kes[0] ) // "mina"
alert( kes[2] ) // "tema"
kes[8] = "Toomas" // sisestame massiivi uue väärtuse kohale 9
alert( kes[8] ) // "Toomas"
alert( kes[10] ) // undefined e. defineerimata
</script>
Räsi massiiv lubab indeksina kasutada sõne (string).
<script type="text/javascript">
taibu = { mina: "tean", sina: "tahad teada", nemad: "ei tea", 99: "muud tegelased" }
alert( taibu['mina'] ) // "tean"
alert( taibu.mina ) // "tean"
alert( taibu.99 ) // SyntaxError: Unexpected number
alert( taibu[99] ) // "muud tegelased"
</script>
// taibu.mina saab kasutada, sest indeksis olev sõne algab tähega ning mitte numbriga. Numbrilise indeksi puhul tuleb number panna kandilistese sulgudesse.
Debugimine
Üks lihtsamaid viise midagi ekraainle saada, on alert funktsioon.
<script type="text/javascript">
alert( 'Tere maailm!' );
</script>
Kui alert funktsioon paigutada tsüklisse (for, while jms), mis mingil põhjusel tsüklist välja ei taha tulla, siis kaob tuju neid "ok" nuppe klikkida juba esimestel sekunditel, nii et ettevaatust!
Teine meetod kiireks väljundiks on console.log. See kirjutab väljundi konsooli (eelpool nimetatud developer tool on abiks), ning tavakasutaja ei pruugi neid üldse näha.
<script type="text/javascript">
console.log( "Rida konsoolis." );
</script>
Aritmeetilised tehted
<script type="text/javascript">
a = 5;
b = 7.5;
c = a + b;
alert( c ); // 12.5
</script>
Mis siis, kui meil on muutuja(id), mida me soovime väljastada koos tekstiga?
<script type="text/javascript">
a = 5;
b = 7.5;
c = a + b;
alert( "Arvude " + a + " ja " + b + " summa on " + c ); // "Arvude 5 ja 7.5 summa on 12.5"
</script>