[Sisällys]
[Seuraava]
Yleistä JavaScriptin syntaksista
- Käskysanat ja muut varatut sanat
- kirjoitetaan aina pienellä. Käskysanoja ovat esimerkiksi for ja
while. Muita varattuja sanoja esimerkiksi this ja new.
- Muuttujien, funktioiden ja luokkien nimissä
- sallittuja kirjaimia ovat pienet kirjaimet (a-z), suuret kirjaimet (A-Z),
numerot (0-9), alaviiva (_) ja dollarinmerkki ($). Nimet eivät saa
alkaa numerolla eivätkä ne saa sisältää skandinaavisia kirjaimia (åäöÅÄÖ).
Isot ja pienet kirjaimet tulkitaan eri merkeiksi.
- HTML-tageihin viittaavissa metodinimissä
- kuten image.SRC (tai image.src) ei ole suurilla ja pienillä
kirjaimilla eroa, kuten ei html-kielessäkään.
- Välilyönti- ja tabulaattori-merkit
- jätetään huomiotta ohjelmaa suoritettaessa. Niillä on merkitystä ainoastaan
muuttujien, käskysanojen ja numeroiden erottimena.
- Rivinvaihto
- toimii pääasiassa käskyjen erottimena. Rivinvaihdon tilalla
voidaan erottimena käyttää myös puolipistettä. Joissakin käskyissä, kuten
if-käskyssä rivinvaihtomerkin voi sijoittaa myös keskelle käskyä ilman,
että se tulkitaan käskyn lopetusmerkiksi. Tämä seikka aiheuttaa sen,
että jos halutaan esimerkiksi määritellä while-lause, joka sisältää
ainoastaan ehdon ja itse runko on tyhjä, on käskyn perässä käytettävä
puolipistettä, jotta seuraavaa käskyä ei tulkittaisi luupin rungoksi.
Tietotyypit
Perustyypit JavaScript-kielessä ovat number, boolean ja undefined.
Liukuluvut ja kokonaisluvut ovat tyyppiä number ja boolean-tyypillä
on vain kaksi mahdollista arvoa, true ja false.
Referenssityyppejä ovat merkkijono, objekti ja funktio. Merkkijonojen
vertailu tapahtuu kuitenkin vertailemalla merkkejä, ei referenssejä.
Jokaisella tyypillä on vastaava luokkansa: Boolean, Number, String,
Object, Function. JavaScript konvertoi arvot objekteiksi luomalla
arvosta vastaavantyyppisen objektin.
Muuttujien tyyppiä ei määritellä niitä luodessa. Muuttujan tyyppi
määräytyy sen mukaan mikä arvo siihen on asetettu.
Muuttujalle voi lisätä jäsenmuuttujia milloin tahansa ja näin
tehdä siitä objektin. Jäsenmuuttujan lisäys vaikuttaa tällöin kuitenkin
ainoastaan kyseiseen muuttujaan. Jäsenmuuttujia on mahdollista lisätä
kaikkiin jo olemassaoleviin instansseihin prototyyppiä muokkaamalla.
- Kokonaisluku
- JavaScript käyttää 32-bittisiä kokonaislukuja. Kokonaislukuliteraalit
voidaan antaa joko kymmenjärjestelmämuodossa (esim. 123), heksadesimaali
muodossa 0x tai 0X -etuliitteen avulla (esim. 0xFA1) tai oktaalimuodossa
0-etuliittellä (esim. 0240).
- Liukuluku
- Liukulukuvakiot voivat olla joko tutun muotoisia (1234.0), desimaalipisteellä
tai ilman, tai sitten ne voivat olla ns. tieteellisessä notaatiossa kuten 1.2e-10.
- Boolean
- Boolean-arvot ovat totuusarvoja joko arvoltaan true tai false.
- Merkkijono
- Merkkijonot ovat hipsujen ' tai kaksoishipsujen " väliin kirjoitettuja
merkkijoukkoja. Merkkijonot voivat sisältää tavallisten merkkien lisäksi
escape-merkkejä kuten "\n", joka tarkoittaa rivinvaihtoa sekä "\t", joka
tarkoittaa tabulaattorimerkkiä. Objektit konvertoidaan automaattisesti
merkkijonoiksi merkkijonojen yhdistelyoperaattoria (+) käytettäessä
toString()-metodin avulla.
- Objekti
- Objektit ovat muuttujaan asetettuja tietueita, jotka voivat sisältää
useita tietotyyppejä, mukaan lukien funktiot ja toiset objektit. Mitään
objektivakiota ei ole olemassa, vaan kaikki objektin instanssit ovat
aina jossain muuttujassa. Ainoa objekteihin liittyvä vakio on null,
joka tarkoittaa määrittelemätöntä objektireferenssiä.
Escape-koodit
Merkkijonoissa voidaan erikoismerkkejä käyttää escape-koodien
avulla. JavaScript tunnistaa seuraavat escape-koodit:
\b (backspace BS)
\t (horizontal tab HT )
\n (linefeed LF )
\f (form feed FF )
\r (carriage return CR )
\" (double quote " )
\' (single quote ' )
\\ (backslash \ )
\## (octal code ##)
\x## (hexadecimal code ##)
Kommentit
Kommenttien syntaksi on samanlainen kuin Java- ja C++ -kielissä:
- Rivin alussa olevat kaksi jakoviivaa // kertovat tulkille, että
loppurivi on kommentti.
- Moniriviset kommentit alkavat /* -merkillä ja loppuvat */ -merkkiin.
Esimerkki
// Kommenttiteksti
/* Hieman pitempi kommentti,
joka jatkuu toiselle riville */
Simo.Sarkka@iki.fi