JavaScript
A Wikipédiából, a szabad enciklopédiából.
A JavaScript programozási nyelv egy objektumorientált szkript nyelv, amelyet weblapokon elterjedten használnak. Eredetileg Brendan Eich, a Netscape Communications mérnöke fejlesztette ki; neve először Mocha, majd LiveScript volt, később „JavaScript” nevet kapott, és szintaxisa közelebb került a Sun Microsystems Java programozási nyelvéhez. A JavaScriptet először 1997–99 között szabványosította az ECMA „ECMAScript” néven. A jelenleg is érvényes szabvány az ECMA-262 Edition 3 (1999. december), ami a JavaScript 1.5-nek felel meg. Ez a szabvány egyben ISO szabvány is.
Tartalomjegyzék |
[szerkesztés] Használat és változatok
[szerkesztés] Szerkesztés, előállítás
A javascript kód vagy a html fájlban vagy külön (jellemzően .js
kiterjesztésű) szövegfájlban van. Ezek a fájlok tetszőleges szövegszerkesztő (nem dokumentumszerkesztő) programmal szerkeszthetőek.
[szerkesztés] Futási környezete
[szerkesztés] Inkompatibilitások
[szerkesztés] Adattípusok
Három elsődleges elemi adattípus létezik:
- String
- Number
- Boolean
Két összetett típus:
- Object
- Array
Speciális típusok:
- Null
- Undefinied
A String típusú adatokat idézőjel vagy macskaköröm pár közé írjuk. Mindkét megoldás lehetséges, így az éppen nem használt jeleket is tartalmazhatja a szöveg.
a = "I'm sorry."; b = 'Macskaköröm: (")'
Az első példában az idézőjel, a másodikban a macskaköröm tagja a string adatnak. Numerikus adatok lehetnek egész (decimális, hexadecimális, octal), vagy lebegőpontos értékek. Léteznek speciális numerikus értékek is, mint az előzőekben említett NaN, not a number érték, amit akkor használ a nyelv, ha értelmezhetetlen a matematikai művelet eredménye, vagy ha nem definiálunk értéket. Lehet még pozitív, vagy negatív végtelen, vagy szintén pozitív/negatív 0 érték. A JScript különbséget tesz a két 0 között.
[szerkesztés] Változók
A JScript nyelvben minden változót deklarálni kell. Ezt a var kulcsszóval tudjuk megtenni. Lehet csoportos deklaráció is, amikor vesszővel elválasztva több változót megadunk, és akár értéket is rendelhetünk hozzájuk. Arra is van lehetőség, hogy a var kulcsszót elhagyjuk, viszont ilyenkor az értékadás kötelező.
var str; var int1, int2, int3; var i = 1; j = null;
A fentiekben többféle deklarációra látunk példát. Fontos megjegyeznünk, hogy az első és második esetben a változó típusa undefinied lesz. A negyedik esetben pedig a j változó null értéket kap. A különbség a két fogalom között az, hogy a null úgy viselkedik, mint egy 0 szám érték, a definiálatlan típus pedig egy speciális érték: NaN (Not a Number). A két érték összehasonlítása egyenlőséget mutat minden esetben. A JScript nyelv egy case-sensitive nyelv, ami annyit tesz, hogy nem mindegy, hogy kis- vagy nagybetűt használunk. Figyeljünk erre oda, főként ha ezen tekintetben eltérő szabályú keretbe helyezzük a JScript kódrészletet, pl. asp-be.
neve | típusa | tartomány | mérete (bit-ben) |
---|---|---|---|
boolean | logikai | true / false | 1 |
byte | szám | -128 .. 127 | 8 |
short | szám | -32.768 .. 32.767 | 16 |
int (integer) | szám | - 2.147.483.648 .. 2.147.483.647 | 32 |
long | szám | -263 .. 263-1 | 64 |
double | szám | 2-1074 .. (2-2-52)·21023 | 64 |
float | lebegőpontos | 2-149 .. (2-2-23)·2127 | 32 |
Object | objektum | ||
char | karakter | 16 | |
String | szöveg |
[szerkesztés] Operátorok
[szerkesztés] Operátorok típusai
[szerkesztés] Aritmetikai operátorok
Összeadás (+)
Az összeadás kétoperandusú művelet. Számokat ad össze,
z=3+4; // z egyenlő 7-tel
és karakterfüzéreket láncol össze.
z="3"+"4"; //z egyenlő 34-gyel udv="Hel"+"lo";> // az udv megegyezik a "Hello"-val
Kivonás (-)
Ha kétoperandusú műveletként használjuk, akkor a kivonás (-) művelettel két számot vonhatunk ki egymásból.
x=4-3; // x egyenlő 1-gyel x=3-4; // x egyenlő -1-gyel
Ha egyoperandusú műveletként használjuk, akkor ez az operátor a pozitív számot negatívvá konvertálja, illetve fordítva.
x=6; y=-x; // y egyenlő -6-tal z=-y; // z jelen esetben megegyezik 6-tal
Ha az operátort nem szám típusú értékekkel használjuk, akkor megpróbálja kiszámolni a különbséget olyan módon, hogy szám típusú értékké alakítja azokat.
Szorzás (*)
A szorzás (*) kétoperandusú művelet, amelynek segítségével két számot szorozhatunk össze.
z=2*3; // z egyenlő 6-tal
Ha az operátort nem szám típusú értékekkel használjuk, akkor megpróbálja kiszámolni a szorzatot olyan módon, hogy szám típusú értékké alakítja azokat.
Osztás (/)
Az osztás (/) olyan kétoperandusú művelet, amely az első operandust elosztja a másodikkal.
z=6/3; // z egyenlő 2-vel z=3/2; // z egyenlő 1.5-del
A nullával való osztás speciális értéket eredményez.
z=3/0; // z POSITIVE_INFINITY-vel vagy NEGATIVE_INFINITY-vel egyenlő z=0/0; // z NAN-nal egyenlő
Ha ez operátort nem szám típusú értékekkel használjuk, akkor megpróbálja kiszámolni a hányadost olyan módon, hogy szám típusú értékké alakítja azokat.
Maradékos osztás (%)
A maradékos osztást (%) szokás modulo-műveletnek is nevezni. A két operandus osztása során keletkezett maradékot adja vissza.
z=7%2; // z egyenlő 1-gyel z=6%2; // z egyenlő 0-val
Ha az operátort nem szám típusú értékekkel használjuk, akkor megpróbálja kiszámolni a maradékot olyan módon, hogy szám típusú értékké alakítja azokat.
Inkrementálás (++)
Az inkrementálás (++) egyoperandusú művelet, amelynek segítségével egy számot lehet inkrementálni, azaz hozzá adni egyet. A művelet lehet pre-inkrement és poszt-inkrement. A pre-inkrement azelőtt végrehajtódik, mielőtt az utasítás további műveletei végrehajtódnának.
x=5; y=++x; // mind az x, mind az y egyenlő 6-tal
A poszt-inkrement azután hajtódik végre, miután az utasítás összes többi művelete végrehajtódott.
x=5; y=x++; // az x 6-tal, az y 5-tel egyenlő
Ha az operátort nem szám típusú értékekkel használjuk, akkor az inkrementálást megpróbálja kiszámolni olyan módon, hogy szám típusú értékké alakítja az operandusokat.
Dekrementálás (--)
A dekrementálás (--) egyoperandusú művelet, amelynek segítségével egy számot lehet dekrementálni, azaz értékéből egyet kivonni. A művelet lehet pre-dekrement és post-dekrement.
A pre-dekrement azelőtt végrehajtódik, mielőtt az utasítás további műveletei végrehajtódnának.
x=5; y=--x; // mind az x, mind az y egyenlő 4-tal
A post-dekrement azután hajtódik végre, miután az utasítás összes többi művelete végrehajtódott.
x=5; y=x--; // az x 4-gyel, az y 5-tel egyenlő
Ha az operátort nem szám típusú értékekkel használjuk, akkor az dekrementálást megpróbálja kiszámolni olyan módon, hogy szám típusú értékké alakítja az operandusokat.
[szerkesztés] Logikai operátorok
- logikai és: a&&b
- logikai vagy: a||b
- tagadás/negálás: !a
- Kisebb mint: <
- Nagyobb mint: >
- Kisebb egyenlő: <=
- Nagyobb egyenlő: >=
- Egyenlő: ==
- Nem egyenlő: !=
- Feltételes hármas: ?:
- Vessző: ,
- Teljesen egyenlő: ===
- Teljesen egyenlőtlen: !==
A különbség az egyenlő (==) és teljesen egyenlő (===) operátorok között az, hogy a fordító az egyenlőség esetén a kiértékelés előtt "kikényszeríti" a hasonlóságot, tehát pl.: egy numerikus és karakteres 1, ill. "1" érték összehasonlítása egyenlőséget eredményez, míg a teljes egyenlőség vizsgálatánál nem. Az érték növelő, csökkentő operátor a hozzá kapcsolódó értékhez hozzáad egyet, vagy kivon belőle egyet.
a = ++a; b = a++;
Ha az operátor elöl áll, akkor először történik meg az érték növelése, ha viszont hátul áll az operátor, akkor előbb az értékadás (b = a) valósul meg, és utána mellesleg nő az "a" változó értéke 1-gyel. Hasonlóképpen az értékcsökkentő operátornál. A feltételes hármas (?:) operátor esetén a kérdőjel előtt egy logikai kifejezés szerepel. Ha a kiértékelés eredménye igaz, akkor a "?" és ":" közötti értéket adja vissza az operátor, ellenkező esetben a ":" utáni értéket. A bitszintű jobbra eltolás két változata között a különbség az, hogy amíg a ">>" esetén az előjelbit értékét használja az új értékhelyek feltöltésére a bal oldalon, addig a ">>>" operátor esetén mindig 0 értékekkel tölti fel az üres helyeket.
a = b >> 2; b = a >>> 2;
A műveletek során a második kifejezésben megadhatjuk, hogy hány értékhellyel tolódjon el a bináris adatsor.
x = += y; x = x + y;
[szerkesztés] Sztring operátorok
- konkatenáció (összefűzés) c=a+b
- részsztring-képzés: sztringobjektum.substring(kezdet,hossz)
[szerkesztés] Bitszintű műveletek
- Bitszintű negálás: ~
- Bitszintű balra eltolás: <<
- Bitszintű jobbra eltolás: >>
- Helyérték nélküli jobbra eltolás: >>>
- Bitszintű és: &
- Bitszintű kizáró vagy: ^
- Bitszintű vagy: |
[szerkesztés] Értékadó operátorok
- Értékadás: =
- Összetett értékadás: OP=
[szerkesztés] Vegyes operátorok
- törlés: delete
- típus: typeof
- értékadás kiküszöbölése: void
- példánya-e: instanceof
- új: new
- benne:in
[szerkesztés] Típuskényszerítés
A JScript esetében könnyű az átmenet a változó típusok között. Ha kiértékel a feldolgozó egy kifejezést, akkor az alábbi szabályok szerint jár el: Tevékenység Eredmény szám és szöveg összeadása A szám a szövegbe épül logikai érték és szöveg összeadása A logikai érték a szövegbe épül szám és logikai érték összeadása A logikai érték a számba épül
[szerkesztés] Operandusok
[szerkesztés] Műveletek precedenciája
[szerkesztés] Operátorok asszociativitása
[szerkesztés] Utasítások és vezérlési szerkezetek
[szerkesztés] Utasítások
[szerkesztés] Vezérlési szerkezetek
[szerkesztés] Függvények és objektumok
[szerkesztés] Függvények
[szerkesztés] Objektumok
[szerkesztés] A JavaScript alapobjektumai és függvényei
megnevezés | leírás |
---|---|
Array | tömb objektum |
Boolean | logikai értékeket leíró és azok kezelését szolgáló beépített objektum |
Date | dátumkezelésre szolgáló beépített objektum |
eval() | egy kifejezés kiértékelő függvény |
Math | matematikai függvények használatát biztosító beépített objektum |
MimeType | MIME típusok kezelésre szolgáló beépített objektum |
Number | számok megvalósítását szolgáló beépített objektum |
parseFloat() | a numerikus értéket képviselő objektumból kinyeri a lebegőpontos számot |
parseInt() | a numerikus értéket képviselő objektumból kinyeri az egész számot |
RegExp | reguláris kifejezések kezelésre szolgáló beépített objektum |
String | sztringek megvalósítását és kezelését szolgáló beépített objektum |
[szerkesztés] Javascript események
[szerkesztés] Az oldal egészére vonatkozó események
- Load
- Eseménykezelő neve: onLoad
- Bekövetkezése: Amikor az oldal minden objektuma letöltődött.
- Resize
- Eseménykezelő neve: onResize
- Bekövetkezése: Amikor a dokumentumot átméretezik.
- Scroll
- Eseménykezelő neve: onScroll
- Bekövetkezése: Amikor a dokumentumot görgetik.
- Unload
- Eseménykezelő neve: onUnload
- Bekövetkezése: amikor egy dokumentumot eltávolítanak egy ablakból vagy frame-ből.
- Érvényes: BODY, FRAMESET elemekre.
[szerkesztés] Egéresemények
- Click
- Eseménykezelő neve: onClick
- Bekövetkezése: amikor rákattint valaki az adott elemre az egérrel.
- Az onClick esemény bekövetkezésének menete:
- mousedown
- mouseup
- click (Többszörös kattintásnál az eseménysorozat mindig bekövetkezik, és a detail attribútum értéke minden kattintásnál megnövekszik egyel.)
- Érvényes: A legtöbb elemre.
- Eseménykezelő neve: onClick
- MouseDown
- Eseménykezelő neve: onMouseDown
- Bekövetkezése: amikor egy egérgombot megnyomnak az adott elem fölött.
- Érvényes: a legtöbb elemre.
- MouseUp
- Eseménykezelő neve: onMouseUp
- Bekövetkezése: amikor az egérgombot elengedik az adott elem felett.
- Érvényes: a legtöbb elemre.
- MouseOver
- Eseménykezelő neve: onMouseOver
- Bekövetkezése: amikor az egérmutató az adott elem fölé kerül.
- Érvényes: a legtöbb elemre.
- MouseMove
- Eseménykezelő neve: onMouseMove
- Bekövetkezése: amikor az egérmutató mozog az adott elem fölött.
- Érvényes: a legtöbb elemre.
- MouseOut
- Eseménykezelő neve: onMouseout
- Bekövetkezése: amikor az egérmutató az adott elemet elhagyja.
- Érvényes: a legtöbb elemre.
[szerkesztés] Formokra vonatkozó események
- Blur
- Eseménykezelő neve: onBlur
- Bekövetkezése: amikor az adott elem elveszti a "fókuszt".
- Érvényes: LABEL, INPUT, SELECT, TEXTAREA, és BUTTON elemekre.
- Change
- Eseménykezelő neve: onChange
- Bekövetkezése: amikor az adott elem elveszti a beviteli fókuszt, és változás következett be a tartalmában azóta, hogy rákerült a fókusz.
- Érvényes: INPUT, SELECT, és TEXTAREA elemekre.
- Focus
- Eseménykezelő neve: onFocus
- Bekövetkezése: amikor az adott elem aktívvá válik, vagy az egér, vagy a billentyűzet segítségével (TAB).
- Érvényes: LABEL, INPUT, SELECT, TEXTAREA, és BUTTON elemekre.
- Reset
- Eseménykezelő neve: onReset
- Bekövetkezése: amikor FORM reset következik be.
- Érvényes: Csak FORM elemre.
- Select
- Eseménykezelő neve: onSelect
- Bekövetkezése: amikor a felhasználó szöveget jelöl ki szöveges (text) mezőben.
- Érvényes: INPUT, TEXTAREA elemekre.
- Submit
- Eseménykezelő neve: onSubmit
- Bekövetkezése: amikor a FORM adatokat elküldenek. (submit).
- Érvényes: Csak FORM elemre.
[szerkesztés] Objektumszintű események
- Abort
- Eseménykezelő neve: onAbort
- Bekövetkezése: amikor egy képletöltést megszakítanak.
- Érvényes: objektum elemekre.
- Error
- Eseménykezelő neve: onError
- Bekövetkezése: Amikor egy kép nem töltődik le teljesen vagy hiba keletkezik a script futása közben.
- Érvényes: OBJEKTUM, BODY, FRAMESET elemekre.
[szerkesztés] Külső hivatkozások
- W3Schools JavaScript oktatóanyagok
- Hard Core JavaScript - átfogó írás korszerű JavaScript technikákról
Főbb programozási nyelvek (továbbiak) |
Imperatív: Fortran • C • C++ • C# • Java • Pascal • Delphi • Ada Script: JavaScript • Visual Basic • PHP • Python • Perl • sh Funkcionális: Haskell • Lisp • Scheme Egyéb: ABAP • Awk • COBOL • PL/SQL • SAS • SQL • Eiffel • Logo • Scratch • SML • Smalltalk |
Történelmi: ALGOL • APL • BASIC • Clipper • MUMPS • PL/I • RPG • Simula |