Az objektumok
A Javascript objektum-orientált nyelv, tehát objektumokkal és azok mezőivel és metódusaival dolgozik. A mezők a megfelelő objektumok egy-egy tulajdonságát képviselik, illetve a metódusok segítségével műveleteket végezhetünk rajtuk. A megadás módja mindig objektumnév . mező. Amennyiben egy olyan metódust hívunk, ami nem tartozik konkrét objektumhoz, csak a típusához (statikus metódusok), akkor az objektum nevét a típus nevével kell helyettesíteni.
Lehetőség van a HTML-objektumok definiálásánál megadni az objektum nevét a NAME=név attribútummal. Ekkor lehetséges lesz Javascriptből ugyanezen a néven hivatkozni rá (kivétel: Area). Minden objektum rendelkezik egy name mezővel, ami a HTML-nevét tartalmazza. Ezzel ellentétben a Javascript változóneveket nem használhatjuk a HTML-kifejezésekben! A másik mód a HTML-objektumok elérésére hogy az őt tartalmazó objektumnak a legtöbbször van egy tömbje, ami a benne definiált objektumokat tartalmazza, definiálási sorrendben. Ekkor csak az indexét kell megállapítani.
A típusok
A Javascript egy laza típusokat használó nyelv, tehát a változóknak és kifejezéseknek nem rögzített a típusa, hanem a felhasználásnak megfelelően változik. Ennek következtében igen sűrűek az automatikus típuskonverziók. Ha egy kifejezésnek nincs értéke, de a kód azt várja, ez hibajelzéshez vezet.
Operátorok
Az összes C-ben használható operátor itt is használható, az eltérések a következők:
- >> egyszerűen kettővel osztja a számot, az előjelet megtartva.
- >>> jobbra tolja a számot, és balról nullákkal tölti fel, tehát az előjel megváltozhat!
- a logikai kifejezések nem feltétlenül értékelődnek ki teljesen. Tehát ha az első operandusból lehet következtetni az eredményre, akkor a második operandus kiértékeletlen marad.
- kétféle idézőjel használható: a " és a '. Ezeket felváltva használva ágyazhatunk egymásba idézőjeleket. Egyébként egy \-t írva elé hasonló hatást érhetünk el.
- az idézőjelek közé zárt szöveg automatikusan egy string objektum, tehát tetszőleges műveletek végezhetők vele.
Különleges kifejezések
- true és false konstansok igaz és hamis értékekkel.
- this ez mindig az aktuális objektumra hivatkozó változó.
- null a semmilyen objektumra hivatkozik.
- void(kifejezés) kiértékeli a kifejezést, majd elnyeli az értékét, aminek következtében a teljes kifejezésnek nem lesz értéke.
- typeof(objektum) egy stringet ad vissza, ami a kifejezés típusát jellemzi.
- new típus(paraméterek) értéke egy új objektum a megadott típusból, a megadott paraméterekkel (ezeknek jelentése típusonként változó).
- return [kifejezés] függvényből visszatér a megadott kifejezés értékével, vagy érték nélkül.
- function név(paraméterek) { utasítások; } definiál egy adott nevű függvényt, a paraméterek a függvény belsejében mint változók használhatók.
- var név [= kifejezés] definiál egy változót. Ha még nincs ilyen nevű, akkor a var elhagyásával egy értékadás is definiálhatja.
- eval(string) kiértékeli a megadott Javascript kifejezést
- parseInt(string) egész számmá konvertálja a stringet
- parseFloat(string) lebegőpontos számmá konvertálja
- isNaN(szám) megadja, hogy a szám érvénytelen érték-e
Vezérlési szerkezetek
Beépített objektumok
navigator
Ennek segítségével megtudhatunk néhány dolgot a böngészőnkről.
- appCodeName a böngésző kódneve
- appName a böngésző neve
- appVersion a verziószáma, platformja, és országkódja egy stringben
- javaEnabled megadja, hogy engedelyezett-e a Java
- userAgent ezt az stringet küldi a szervereknek adatátvitelkor
internet-címek
Ilyen objektum ugyan nem létezik, de sok hasonló igen. Itt összefoglaljuk a közös mezőiket.
- hash a # és utána a jelző neve
- host hostname + ":" + port
- hostname a gép neve
- href a teljes cím
- pathname az elérési út a gépen
- port a port száma
- protocol a cím kezdete a :-ig
- search a ? és az utána következő kérés
Array
Tömböket lehet vele csinálni. A tömbnek nincs fix hossza, ha egy tetszőleges indexű elemének értéket adunk, akkor automatikusan a megfelelő hosszúságúra nyúlik. A tömb néhány eleme lehet null - az az index nem tartalmaz érvényes hivatkozást egy objektumra. A toString() metódus vesszővel elválasztva adja az elemek összefűzését.
new Array() létrehoz egy üres tömböt
new Array(kezdetiElemSzám) egy ekkora tömböt hoz létre
new Array(elem, elem, elem, ...) olyan tömböt hoz létre, mely ezeket az elemeket tartalmazza
- join(elválasztó) összekapcsolja az elemeket egy stringgé
- sort(függvény) rendezi az elemeket, függvény(a, b) értékei szerint. Ha ez pozitív, akkor a jön előbb, ha negatív, akkor b jön előbb, ha nulla, akkor nem változik a sorrendjük.
- reverse() megfordítja a sorrendjüket
Date
Dátumok és időpontok kezelésére szolgál. Egy ilyen objektum tulajdonképpen az 1970. jan. 1. 00:00.00 óta eltelt ezredmásodpercek száma.
new Date() a mai napot hozza létre
new Date("hó nap, év óra:perc:másodperc") és a
new Date(év, hó, nap [, óra, perc, másodperc]) a megfelelő időpontot.
- getDate() megadja a napot
- getDay() megadja a hét napját (0-vasárnap, 1-hétfő ...)
- getHours() megadja az órákat
- getMinutes() megadja a perceket
- getMonth() megadja a hónapot
- getSeconds() megadja a másodperceket
- getTime() az teljes időt
- getTimeZoneoffset() percekben az időzóna eltérés a GMT-től
- getYear() megadja az évszámot
- parse() egy stringet teljes idővé alakít
- setDate(nap) beállítja a napot
- setHours(óra) az órákat
- setMinutes(perc) a perceket
- setMonth(hó) a hónapot
- setSeconds(mp) a másodperceket
- setTime(idő) beállítja a teljes dátumot
- setYear(év) beállítja az évszámot
- toGMTString() GMT stringgé konvertálja
- toLocaleString() helyi megadású stringgé konvertálja
- UTC(év, hó, nap, óra, perc, mp) ezt a teljes időt adja meg
Function
Segítségével létrehozhatunk egy függvény-objektumot. Később a nevéhez zárójelben hozzáfűzve a paramétereket meg is hívhatjuk.
new Function(arg1, arg2, ... , "függvény törzse") létrehoz egy függvény-objektumot ami a megadott függvénytörzsből áll, a paraméterek nevei az előző argumentumok.
- arguments az argumentumok tömbje
Math
Matematikai konstansok és függvények tárháza.
- konstansok:E, LN2, LN10, LOG2E, LOG10E, PI, SQRT1_2, SQRT2
- függvények:abs(szám), acos(szám), asin(szám), atan(szám), ceil(szám), cos(szám), exp(szám), floor(szám), log(szám), max(a, b), min(a, b), pow(a, b), random(), round(szám), sin(szám), sqrt(szám), tan(szám).
string
Egy karakterlánc. Ilyet legegyszerűbben idézőjeles szöveg megadásával hozhatunk létre.