JavaScript könyvek gyűjteménye – Milyen könyvekből tanuljak JavaScript-et
Valószínűleg már mindenki találkozott “Tanuljuk meg a(z) XY használatát 24 óra alatt” könyvekkel, aki foglalkozott vagy próbálkozott foglalkozni a programozással. Ezek a könyvek valóban nagyon jók, hiszen ahogy a címük is állítja az a céljuk, hogy a lehető leghamarabb megtanítsanak minket valamilyen programnyelven. A könyvet, mely összesen 456 oldalas, eredetileg Michael Moncur írta, de megjelent magyar nyelven is.
1 JavaScript I. KÖNYV: ALAPOK I. JavaScript Bevezetés A JavaScript (a továbbiakban JS) a legelterjedtebben használt internetes programozási nyelv, melyet a legtöbb böngésző (pl. IE, Firefox, Chrome, Opera, Safari) támogat. Előismeretek A JS elsajátításához szükséges a HTML/XHTML nyelv legalább alapfokú ismerete. Mi a JavaScript? A JavaScript egy Internetes felhasználáshoz idomított ún. scripting language (=parancsleíró nyelv), vagyis voltaképpen egy (leegyszerűsített) programozási nyelv, mellyel interaktívvá tehetjük weboldalainkat. A JavaScriptet a (bonyolultabb) C programozási nyelvből alakították ki. A JS ún. interpretált nyelv, azaz a parancsait a program az erre kifejlesztett program gépi kódra való lefordítás nélkül hajtja végre. A JS-et általában közvetlenül a HTML-fájlba írjuk bele. A JS-et bárki ingyenesen használhatja. Java = JavaScript? Nem! A Java és a JavaScript két, alapgondolataiban és megjelenésében teljesen eltérő programozási nyelv. A Sun Microsystems által kifejlesztette Java a JS-nél sokkal hatékonyabb és bonyolultabb nyelv, s így inkább a C ill. C++ -hoz hasonló. Mire jó a JavaScript? A JS a webes fejlesztők programozási eszköze. A HTML-oldalak készítői gyakran nem programozók; így számukra ideális programozási lehetőséget nyújt az igen egyszerű mondattannal rendelkező JavaScript. A JS segítségével tehát a programozáshoz nem értők is bővíthetik néhány program-töredékkel weboldalukat. A JS-tel dinamikus (szöveg)tartalommal tölthetjük fel a weboldalakat. Az alábbihoz hasonló JavaScript-utasításokkal (=statements) az oldal bizonyos (pl. szöveges) elemeinek tartalmát a weboldal aktuális állapotához igazíthatjuk: document.write(
+ name +
) A JS-tel az oldal reagálhat bizonyos eseményekre A JS megfelelő beállításával bizonyos történésekhez (pl. az oldal letésének befejeződése, vagy a felhasználó elemre-kattintása) az oldal tartalmának megváltozásában álló választ rendelhetünk. A JS kezeli (olvassa és felülírja) a HTML-tartalmat A JS működés közben beolvashatja/felhasználhatja ill. módosíthatja egyes HTML-elemek tartalmát. A JS adatok validálására is használható. A JS segítségvel leellenőrizhetjük a felhasználó által (pl. űrlapon) küldendő adatok helyességét a továbbításuk előtt. A kiszűrt hibás üzenetek nem terhelik feleslegesen a szervert. A JS felismeri a felhasználó böngészőprogramját. A JS segítségével felismerhetjük a felhasználó böngészőjének típusát, és a szerver az azonos tartalmú, de eltérő böngészők számára készült weboldal-variánsok közül a legmegfelelőbbet továbbíthatja neki. A JS alkalmas cookie-k létrehozására A JS-segítségével ún. cookie-k formájában adatokat tárolhatunk és kereshetünk vissza a weboldal látogatójának számítógépén/számítógépéről. A (HTTP-/web-/browser-)cookie (=keksz) nem más, mint a webbönglsző által a felhasználó gépén eltárolt szöveg. Ezt a későbbiekben bejelentkezéseknél, keresési és böngészési javaslatokhoz, bevásárlókosár-tartalom megőrzésére egyaránt felhasználhatjuk, de az éppen látogatott weboldalak tartalmának megőrzésére és a gép váratlan leállását követő visszaállítására is
2 alkalmas. A JavaScript pontos elnevezése ECMAScript A JavaScript az ECMASCript nyelvi normára épülő alkalmazás (=implementáció). Az ECMAScriptet az ECMA International fejleszti és működteti, amely egy nemzetközi kommunikációtechnológiai és szórakoztató elektronikai szabványügyi szervezet. A hivatalos JavaScript szabvány jele ECMA-262. Az ECMAScript nyelvet Brendan Eich, a Netscape munkatársa fejlesztette ki (a Navigator 2.0-ra), majd 1996 óta minden Netscape és Microsoft böngészővel használhatóvá vált. Az ECMA-262 kifejlesztése 1996-ban kezdődött, az első változatát pedig az ECMA júniusi Általános Közgyűlésén fogadták el. A szabványt 1998-ban az ISO is bejegyezte, ISO/IEC szám alatt. Fejlesztése jelenleg is folyik.
3 II. JavaScript módszertan A JavaScriptet a HTML tag segítségével írhatjuk bele a weboldalba. JavaScript írása weboldalba Az alábbi példában egy szöveget íratunk ki a weboldalra a JS segítégével: document.write(“hello World!”); A fenti HTML-oldalon csupn a Hello World! szavak olvashatók (idézőjel nélkül). Ha az idézőjeleknek akár csak egyikét is kitöröljük, vagy az utasításban szereplő pontot kettőspontra változtatjuk, a böngésző nem ír ki semmit. Második példánkban látjuk, hogyan adhatunk HTML-tageket a megjelenítendő tartalomhoz: document.write(“
hello World!
“); Ebben az esetben a szöveg elsőrendű címsorként jelenik meg. A példát átalakítva linket is kiírathatunk: document.write(“
hello World!
“); Mint látszik, az tag attribútum-értékeit ( ill. _blank) nem tettük idézőjelbe, mert ellenkező esetben a program megzavarodik, és nem ír ki semmit (ti. maga a JS utasítás értéke is idézőlejben van). Magyarázat Mint első példánkban láttuk, a JS-nek a dokumentumba ágyazására a tag szolgál, melyben a type attribútummal a parancsnyelv fajtáját is meg kell adnunk. Így a és a tagek jelzik a JS kezdetét és végét a dokumentumban.
4 A document.write egy standard JS-parancs, mellyel szöveget íratunk ki az oldalra. Hogyha ezt az előbb bemutatott script elembe írjuk, a böngésző JS-parancsként fogja értelmezni, és végrehajtja a parancssort, azaz ebben az esetben kiírja a Hello World! szöveget: document.write(“hello World!”); Hogyha a parancssort nem tagbe írjuk, akkor azt a böngésző egyszerű szöveges tartalomként kezeli, és az egészet kiírja az oldalra. Tehát pl. a következő esetben: document.write(“hello World!”); a document.write( Hello World! ); felirat jelenik meg a képernyőn. Megoldás az egyszerű böngészők számára A JavaScriptet nem támogató böngészők a JS rendelkezéseket (=statements) az oldal-tartalom részeként jelenítik meg, ami zavarólag hat. Ennek kiküszöbölésére, a JS szabvány értelmében a HTML comment () taget alkalmazzuk az elrejtésükre. Azaz egyszerűen írjunk egy taget utánuk, így: A két, jobbra dőlő perjel a comment-záró tag előtt a JS-megjegyzések jelölése, azaz az ezen jelek közé írt rendelkezéseket a program nem veszi figyelembe. A HTML comment-lezáró tag elé írt kettős perjel értelmében a JavaScript az oldal teljes további tartalmát megjegyzésként kezeli, és nem hajtja végre. JavaScript módszertan: A JS-et tartalmazó tag: JavaScript rendelkezések Szöveg-kiírató parancs: document.write( Szöveg ); JS elrejtése nem támogató böngésző esetére (HTML comment taggel):
5 III. A JavaScript elhelyezése a weboldalban A JS-et a dokumentum fejrészébe ill. szövegtestébe egyaránt beleírhatjuk. A JS elhelyezése a weboldalban A HTML-oldalba írt JavaScripteket a böngésző az oldal betöltésekor azonnal végrehajtja. Előfordulhat azonban, hogy máskorra kell időzítenünk őket, pl. amikor a felhasználó megnyom egy gombot. Az utóbbi esetben egy ún. függvénybe (=function) kell beírnunk a JS-rendelkezéseket, amiről egy későbbi fejezetben lesz szó. JS-rendelkezések a
részben Azon JS-rendelkezéseket, melyeknek csak megfelelő felhasználó-oldali akcióra, hívásra szabad végbemenniük, az előbbiek szerint függvényekbe írjuk; amelyket a dokumentum fejrészébe írva elkülöníthetünk a szövegtestbe írt HTML, CSS és JS elemektől és rendelkezésektől. Következő példa-oldalunk betöltésekor egy párbeszédpanelben a This alert vox was called with the onload event felirat jelenik meg: function message() alert(“this alert box was called with the onload event”);we usually use the head section for functions (to be sure that the functions are loaded before they are called).
Mint látjuk, a elem betöltésekor a böngésző a message függvényben szereplő alert parancs tartalmát iratja ki egy párbeszédpanelben. Természetesen a függvényt message helyett mésként is elnevezhetjük (pl. sanyi), elegendő az elnevezést a elemben ill. a fejrészben átírni. Mint látjuk, a függvényet azért is a
részbe írjuk, hogy a böngésző még a szövegtest betöltődése, vagyis az ottani akció nyomán történő esetleges meghívásuk előtt beolvassa őket. JS-rendelkezések a részben Hogyha a parancsunkat nem szükséges függvényként végrehajtatnunk, vagy pl. csupán szöveget akarunk vele kiíratni, akkor a dokumentum részében célszerű elhelyeznünk, pl.: document.write(“this message is written by JavaScript”); Az oldalon tehát a This message is written by JavaScript felirat jelenik meg.6 JS-rendelkezések a
és részben A dokumentumban tetszőleges számú scriptet heylezhetünk el, a fejrészben és a szövegtestben egyaránt, így pl. az alábbi oldalon mind a szövegtestbe, mind a fejrészbe írt JS-ek hibátlanul működnek, nem zavarják egymást: function message() alert(“this alert box was called with the onload event”); document.write(“this message is written by JavaScript”); A szövegtest betöltésekor tehát figyelmeztető üzenet jelenik meg (párbeszédpanelben), a megjelenített tartalom pedig megfelel a szövegtestbe írt scriptnek. Akkor is ugyanez történik, hogyha csak a fejrész ill. szövegtest tartalmazza mindkét scriptet, vagy azok elhelyezését felcseréljük. Tehát voltaképpen bárhol elhelyezhetjük őket, a lényeg, hogy a program képes leyen őket a megfelelő időben a megfelelő elemre vonatkoztatva végrehajtani, és hogy a kód áttekinthető legyen. Külső JavaScript használata Hogyha számos oldalon kívánjuk ugyanazokat a JavaScripteket futtatni, nem kell a rendelkezéseket minden egyes oldalba beleírnunk elgendő egy külső fájlként összeállított JS-re hivatkoznunk. E fájl.js kiterjesztéssel rendelkezzen! A külső JS fájl csak JS-rednelkezéseket tartalmazhat, tageket és egyéb elemeket vagy szöveget nem. Ezért a tageket se írjuk bele! A külső JS-fájlra a elem src (=source) attribútumával utalunk, pl.:The actual script is in an external script file called “xxx.js”.
Mint látjuk, az oldal a JS-fájlra hivatkozik, aminek tartalma: document.write(“this text was written by an external script!”) A taget, habár tartalmat nem írunk bele, továbbra is ugyanott kell elhelyezni, ahová belső
7 JS-ként beírnánk! A JavaScript elhelyezése a weboldalban: Belő JavaScriptek: A HTML-oldalba írt JavaScripteket a böngésző az oldal betöltésekor azonnal végrehajtja; a függvényekbe írt kódot viszont csak a függvény meghívásakor. JS-rendelkezések a részben A csak meghívásra indítandó függvény-parancssorokat a részbe írjuk; hogy elkülönítsü a szövegtestbe írt, azonnal végrehajtandó JS-től, ill. hogy már meghívásuk előtt betöltse őket a böngésző.. JS-rendelkezések a részben Hogyha a parancsunkat nem szükséges függvényként (késleltetve) végrehajtatnunk, akkor a dokumentum részében célszerű elhelyeznünk A dokumentumban tetszőleges számú scriptet heylezhetünk el, a fejrészben és a szövegtestben egyaránt, azaz mind a szövegtestbe, mind a fejrészbe írt JS-ek hibátlanul működnek, nem zavarják egymást! Külső JavaScriptek: Adott esetben (ha annak tartalma megfelelő), a JS-et egy külső,.js kiterjesztésű fájlként is hozzáadhatjuk a weboldalhoz. A külső JS fájl csak JS-rendelkezéseket tartalmazhat, tageket és egyéb elemeket vagy szöveget nem. Ezért a tageket se írjuk bele! Hivatkozás külső JS-re: A taget, habár tartalmat nem írunk bele, továbbra is ugyanott kell elhelyezni, ahová belső JS-ként beírnánk! Scriptek: Oldalbetöltés (=onload) esemény/attribútum: Függvény: function függvény-név (paraméter1,paraméter2) végrehajtandó_kód; Figyelmeztető-ablak: alert( Üzenet );
8 IV. JavaScript rendelkezések A JS a böngésző által végrehajtandó rendelkezések (azaz parancsoknak és azok értékeinek) sorozata. A JavaScript esetfüggő A HTML-lel szemben a JS esetfüggő, ezért fokozottan ügyelnünk kell a nagy-és kisbetűk következetes használatára a JS-et alkotó kijelentések, (kijelölendő vagy meghívandó) változók, objektumok és függvények írásakor. JavaScript rendelkezések (statements) A JS-rendelkezések nem egyebek, mint a böngészőnek szóló utasítások, azaz a teendők meghatározásai. Pl. az alábbi rendelkezés értelmében a böngészőnek meg kell jelenítenie a Hello Dolly feliratot a weboldalon: document.write(“hello Dolly”); A rendelkezések végére általában pontosvesszőt írunk. Ez bevett és elismert gyakorlat a programozók között, az Interneten számos helyen talákozhatunk vele. A JS szabványnak a rednelkezések pontosvesszővel való elválasztása csak kiegészítő eleme, mivel a böngészők e szabvány szerint a sortöréseket (entereket) tekintik az egyes rendelkezések végének. Így minden egyes rendelkezést külön sorba kellene írni. A pontosvesszők használatával nemcsak könnyebben olbvashatóvá, elkülöníthetőbbé válnak az egyes rendelkezések, hanem egy sorba többet is írhatunk belőlük. JavaScript kód A JavaScript-kód vagy egyszerűbben JavaScript JS-rendelkezések sorozata. Ezeket a böngésző az oldalan elfoglalt helyük sorrendjében hajtja végre. Következő példánkban egy címsort és két bekezdést íratunk ki a weboldalra: document.write(“
this is a paragraph.
“); document.write(“
this is a heading
“); document.write(“
this is another paragraph.
“); Mint látjuk, itt a címsor a két bekezdés között található. Hogyha a pontosvesszőket kitöröljük, a kód továbbra is működik, de hogyha ezután a sortöréseket megszüntetjük és az egyes rendelkezéseket enterek helyett csak szóközök választják el, a böngésző nem képes kiírni a szöveget. JavaScript tömbök A JS-rendelkezéseket ún. tömbökbe csoportosíthatjuk, melyeket kapcsos zárójelekkel jelölünk. A tömbbe tartozó rendelkezéseket a böngésző egyszerre hatja végre. A következő példában ugyancsak címsort és bekezdéseket íratunk ki a weboldalra:
9 document.write(“
this is a heading
“); document.write(“
this is a paragraph.
“); document.write(“
this is another paragraph.
“); Példánk nem túl tanulságos, csupán a tömbbe zárás mondattanát mutatja be, mely a CSS-meghatározásaok csoportosításával analóg. A rendelkezéseket leggyakrabban akkor csoportosítjuk, ha egy függvénybe (=function) vagy feltételbe (=condition) szeretnénk őket csoportosan beírni. A függvényekről és feltételekről (mely utóbbi teljesülése esetén a rendelkezések adott csoportját a program végrehajtja) a későbbi fejezetekben lesz szó. JavaScript rendelkezések: A JS-rendelkezések a böngészőnek szóló utasítások. Sortörések vagy pontosvesszők választhatják el őket a kódban. A rendelkezáseket tömbökbe csoportosíthatjuk, amelyek elején ill végén kapcsos zárójelek állnak. A tömbbe zárt kódot (pl. egy függvény vagy feltételes rendelkezés értékeként) a böngésző a többitől elkülönítve, egységként hajtja végre. A JS esetfüggő, ezért fokozottan ügyelnünk kell a nagy-és kisbetűk következetes használatára!
10 V. JavaScript megjegyzések A JS-megjegyzéseket a kód olvashatóbbá tételére használjuk. JavaScript megjegyzések A JS-megjegyzések a JS-kód magyarázatára vagy áttekinthetőségének növelésére szolgálnak. Az egysoros megjegyzések kettős perjellel (//) kezdődnek Az alábbi példában egysoros megjegyzésekkel magyarázzuk a kódot: // Write a heading document.write(“
this is a heading
“); // Write two paragraphs: document.write(“
this is a paragraph.
“); document.write(“
this is another paragraph.
“); Mint látjuk, az egysoros megjegyzések használatának kulcsa, hogy a böngésző a JavaScript rendelkezéseit soronként értelmezi, így a megjegyéseink nem szorulnak külön lezáró jelre, hiszen a kód új sorban folytatódik. Többsoros JavaScript-megjegyzések A többsoros JS-megjegyzések /*-gal kezdődnek és */-re végződnek, a CSS-megjegyzésekhez hasonlóan. Alábbi példánk rendelkezéseihez többsoros magyarázatot fűztünk: /* The code below will write one heading and two paragraphs */ document.write(“
this is a heading
“); document.write(“
this is a paragraph.
“); document.write(“
this is another paragraph.
“); Végrehajtás-gátló megjegyzés-jelek Az alábbi példában a megjegyzés-jelet egy rendelkezés végrehajtásának meggátlására, azaz kvázi a rendelzekés kikapcsolására használjuk. A megjegyzés-jelek ilyetén használata az oldalak hibáinak kijavításakor (=debugging) szokásos. //document.write(“
this is a heading
“);
11 document.write(“
this is a paragraph.
“); document.write(“
this is another paragraph.
“); Ebben az esetben tehát a címsor nem látszik, mert a megjelenítésére vonatkozó rendelkezést a böngésző egy egysoros megjegyzésnek tekinti. Többsoros rendelkezések vagy rendelkezés-tömbök kikapcsolására szabatosan a többsoros megjegyzésjelet alkalmazzuk: /* document.write(“
this is a heading
“); document.write(“
this is a paragraph.
“);*/ document.write(“
this is another paragraph.
“); Itt csak az utolsó bekezdés kerül megjelenítésre. Sorvégi megjegyzések Következő példánk megjegyzéseit a rendelkezések után, a sorvégekre írtuk, így azok nem foglalnak el külön sorokat: document.write(“hello”); // Write “Hello” document.write(” Dolly!”); // Write ” Dolly!” Az oladl tartalma itt is Hello Dolly! JavaScript megjegyzések: A JS-megjegzéseket jegyzeteknek a kódba írásához vagy a kód egyes részeinek kikapcsolásához /érvénytelenítéséhez használjuk a szerkesztés vagy javítás során. Egysoros megjegyzés: //Megjegyzés Többsoros megjegyzés: /*Megjegyzés Megjegyzés*/ Sorvégi megjegyzés (nem foglal el külön sort): kód; //Megjegyzés
12 VI. JavaScript változók A változók (=variables) a JS információ-tároló részei. Algebrai változók Az iskolai algebrából emlékezhetünk a következőhöz hasonló összefüggésekre: x=5, y=6, z=x+y Ezekben a betűkhöz (pl. az x) bizonyos értéket (pl. 5) társítva a művelet végeredménye (z = 11) kiszámíthatóvá válik. Az említett betűket változóknak (=variables) nevezik, melyek bizonyos értékekre (pl. x = 5) illetve összefüggésekre (pl. z=x+y), azaz végső soron információkra utalhatnak. JavaScript változók Az algebrai változókhoz hasonlóan a JS változói is értékeket ill. összefüggéseket takarnak. Tetszőleges elnevezésekkel illethetjük őket, mint amilyen az x, illetve jellegzetesebbekkel is, mint pl. a carname. A JS-változók elnevezésekor két szabályt kell betartanunk: 1. A JS-változó nevek, mint minden JS-elem, esetfüggők, azaz pl. az y és az Y két külön változót jelöl. 2. A változó-neveknek betűvel vagy aláhúzás-karakterrel (_) kell kezdődniük. Egy gyors példa A változók értéke a parancssor végrehajtása közben változhat. Az aktuális érték behívása ill. megváltoztatása egyaránt az érték-névre való hivatkozással történik, mint azt példánk mutatja: var firstname; firstname=”hege”; document.write(firstname); document.write(“
“); firstname=”tove”; document.write(firstname);
the script above declares a variable, assigns a value to it, displays the value, changes the value, and displays the value again.
A példánkban szereplő parancssor első sorában definiáljuk a firstname nevű változót, majd a második sorban hozzárendeljük a Hege értéket. A harmadik sor kiíratja a böngészővel a firstname változó éppen aktuális értékét (Hege). A negyedik sor egy sortörést jelent a megjelenő szövegben. Az ötödik sorban a firstname változóhoz új értéket rendelünk (Tove), majd a hatodik sorban ismét kiíratjuk a firstname változó értékét, ami ekkor már Tove. A parancssor futtatásának eredménye tehát a Hege Tove
13 felirat lesz. JavaScript változók létrehozása A JS változók létrehozása (=creation) ún. meghatározással (=declaration) történik, amit a var kulcsszóval végzünk, pl.: var x; var carname; Az így létrehozott két válzotó üres (=empty), azaz értékkel nem rendelkezik. A változókhoz, mint fentebb láttuk, a változónév=szám; ill. a változónév= szöveg ; rendelkezésekkel redndelhetünk szám- vagy szöveges értéket. Ezt (azaz az értékek megadását) a definiálással össze is vonhatjuk, pl.: var x=5; var carname=”volvo”; E rendelkezések végrehajtásával az x változó értéke 5, a carname-é pedig Volvo lesz. Amint láttuk, a szöveges változó-értékeket idézőjelbe kell tenni. Természesen a számokat is tehetjük idézőjelbe, de akkor azt a böngésző szövegnek fogja tekinteni és akként kezeli. Pl. a böngésző a document.write(
); parancsot nem hajtja végre, mert a
taget nem tudja számként értelmezni. Hogyha ehelyett a document.write(
); rendelkezéssel élünk, akkor sortörést kapunk. Ugyanígy, a document.write( x ); rendelkezéssel a böngésző nem az x függvény értékét (5) írja ki, hanem az x betűt. Ugyanakkor az document.write(x); rendelkezést már nem betűként, hanem számként kezeli, és az x változónak (azaz számnak) megfelelő, 5-ös értéket írja ki. JavaScript változók létrehozása az értékek megadásával Ahogy fentebb láttuk, a JS-változó értékek megadásakor mindig le kell írnunk a változó nevét is. Ezért úgy vehetjük, hogy az érték-megadással egyúttal az érték-nevet is definiáljuk. Azaz a JS-ben a meg nem határozott változók értékének megadásával automatikusan definiáljuk a változókat is. Ennek értelmelmében a x=5; carname=”volvo”; parancssor jelentése megegyezik az előbb ismertetett, közös meghatározási módszer eredményével: var x=5; var carname=”volvo”; illetve annak hosszabb megfelelőjével: var x; x=5; var carname; carname= Volvo ;
14 A JavasScript változók újra-meghatározása Hogyha pl. mint az alábbi parancssorban kátható egy JS-változót újra-definiálunk, annak értéke továbbra is megmarad, pl.: a következő parancssor értelmében var x=5; document.write(x); document.write(
); var x; document.write(x); A böngésző egymás alá két 5-öst ír ki, jelezve, hogy az x változó újradefiniálása az értékét önmagában nem változtatta meg ill. nem törölte. Következő példánkban azonban kétszer is megváltoztatjuk az x értékét, s eközben mindhárom definiálási eljárást alkalmazzuk: var color; color= red ; document.write(color); document.write(
); var color= green ; document.write(color); document.write(
); color= blue ; document.write(color); Ebben az esetben a red, green és blue szavakat látjuk egymás alatt. JavaScript aritmetika Az algebrához (betűszámtanhoz) hasonlóan a JS-változókkal is végezhetünk aritmetikai (számtani) műveleteket, pl.: y=x-5; z=y+5; Az ilyenkor végeztethető műveletekről (=operators) a következő fejezetben lesz szó. JavaScript változók: A változók a JS információ-tároló részei. Az algebrai változókhoz hasonlóan értékeket ill. összefüggéseket takarnak. Tetszőleges elnevezésekkel illethetjük őket, de két szabályt be kell tartanunk: 1. A JS-változó nevek esetfüggők, azaz pl. y és Y két különbözőt jelöl. 2. A változó-neveknek betűvel vagy aláhúzás-karakterrel (_) kell kezdődniük. Változók definiálása: 1. Külön sorokban: var x; var x=1; 2. Egy sorban: var x=1;
15 3. Az érték megadásával: x=1; Érték-típusok: Szám, pl.: 123 Szöveg, pl.: Szöveg Logikai érték: true/false/1/0 Művelet, pl.: a+b Üres (empty): /null Nem szám (not a number): NaN Változók újradefiniálása, hierarchiája: 1. A változók nevének (pl. var telefon 😉 újradefiniálása az értékre nincs hatással. 2. Az érték újbóli megadása felülírja a korábbit (az oldalban előbb szereplőt). 3. A függvényeken ill. tömbökön belüli (helyi), és az egész dokumentumra vonatkozó (külső) változók típusa ért értéke között nincs összefüggés.
16 VII. JavaScript műveletek Alapismeretek Az egyenlőségjelnek (=) megfelelő hozzárendelési műveletet a JS-válltozó(-neve)k és értékük egymáshoz rendelésére alkalmazzuk. A számtani összeadásjelnek (+) megfelelő művelet pedig a változók értékeinek összeadását jelenti. Pl. az alábbi parancssorban lévő rendelkezések y=5; z=2; x=y+z; végrehajtásának eredménye a képernyőn: 7. JavaScript számtani műveletek A számtani (=arithmetic) műveletekel a változókat és/vagy értéküket kezelhetjük. A következő táblázatban az y=5 esetre vonatkozó példákon keresztül mutatjuk be a JS-ben használt számtani műveleteket: Művelet (=operator) Leírás Példa Eredmény + Összeadás (=addition) x=y+2 x=7 – Kivonás (=subtraction) x=y-2 x=3 * Szorzás (=multiplication) x=y*2 x=10 / Osztás (=division) x=y/2 x=2.5 % Modulus (osztási maradék) x=y%2 x=1 ++ Növekmény (=increment) x=++y x=6 — Csökkenés (=decrement) x=–y x=4 JavaScript hozzárendelő-jellemzők A hozzárendelő-jellemzőkkel értéket rendelhetünk a JS-változókhoz. Az alábbi táblázatban összefoglaljuk őket, példákon is bemutatva használatukat (x=10 és y=5 esetén): Művelet Példa Hagyományos alak Érték = x=y x=5 += x+=y x=x+y x=15 -= x-=y x=x-y x=5 *= x*=y x=x*y x=50 /= x/=y x=x/y x=2 %= x%=y x=x%y x=0 Többtagú vagy szöveges értékek összeadása (a + művelettel) A + műveletet több számból vagy szóból álló változó-értékek összeadására is használhatjuk; pl. a következő parancssor végrehajtása után a txt3 változó értéke What a verínice day lesz: txt1=”what a very”; txt2=”nice day”; txt3=txt1+txt2; Tehát a fenti rendelkezések végrehajtása után a txt3 tartalma (azaz értéke): What a verynice day. Hogyha a very ill. nice szavak között szóközre is szükség van, akkor azt vagy az egyik változó értéksorozatába kell beírnunk txt1=”what a very “;
17 txt2=”nice day”; txt3=txt1+txt2; vagy txt1=”what a very”; txt2=” nice day”; txt3=txt1+txt2; vagy a txt3 értékét megadó kifejezésbe kell közvetlen értékként vagy egy újabb, külső változó értékeként belefoglalnunk, azaz vagy txt1=”what a very”; txt2=”nice day”; txt3=txt1+ +txt2; vagy txt1=”what a very”; txt1b= ; txt2=”nice day”; txt3=txt1+txt1b+txt2; rendelkezésekkel élnünk. Ezek végrehajtása után tehát a txt3 tartalma: What a very nice day. Megjegyezzük, hogy a JS-be írt szövegek többszörös szóközei is eggyé olvadnak! Érték-sorok (többszörös számértékek vagy szavak) és számok összeadása Esetén az eredmény minig érték-sor lesz. Ezt a szabályt illusztrálja alábbi példánk is: x=5+5; document.write(x); document.write(“
“); x=”5″+”5”; document.write(x); document.write(“
“); x=5+”5”; document.write(x); document.write(“
“); x=”5″+5; document.write(x); document.write(“
“);
the rule is: If you add a number and a string, the result will be a string.
ahol az első művelet eredménye 10, az összes többié viszont 55, ami tehát nem számnak, hanem számsorozatnak/szövegnek számít, tehát pl. ha a parancssorhoz hozzáírjuk az y=x+6; document.write(y); meghatározásokat is, annak eredménye 61 helyett 556 lesz; míg ha rögtön az első x-meghatározás után írjuk, akkor y értéke 16 lesz. JavaScript műveletek:
18 Számtani műveletek jelei: Összeadás: + Kivonás: – Szorzás: * Osztás: / Modulus (osztási maradék): % Növekmény: ++ Csökkenés: — Hozzárendelések jelei: Egyenlőség: x=y Növelés: x+=y [x=x+y] Csökkentés: x-=y [x=x-y] Többszörözés: x*=y [x=x*y] Felosztás: x/=y [x=x/y] Maradék-képzés: x%=y [x=x%y] Szöveg-értékű változók összeadása: var x= Szöveg1 ; var y= Szöveg2 ; var z=x+ +y; az eredmény: Szöveg1 Szöveg2. Számot szöveggel összeadva az eredmény szöveg (string); pl. x=5+5=10, de y=5+ 5 =55!
19 VIII. JavaScript összehasonlító és logikai műveletek Az összehasonlító és logikai műveleteket igaz/hamis megkülönböztetésekre használjuk a JS-ben. Összehasonlító műveletek Az összehasonlító műveleteket (=comparison operators) logikai rendelkezésekben használjuk, változók vagy azok értékei közti azonosság vagy eltérés felismerésére. Az alábbi táblázatból (ahol x=5) megismerhetjük a JS összehasonlító műveleteit: Művelet Leírás Példa Műveleti érték == (x) egyenlő (8-cal) x==8 HAMIS === (x) azonosan (azaz mind értékében, mind szöveg/szám jellegében) egyenlő (5-tel ill. 5 -tel) x===5 x===”5″ IGAZ HAMIS!= (x) nem egyenlő (8-cal) x!=8 IGAZ > (x) nagyobb, mint (8) x>8 HAMIS < (x) kisebb, mint (8) x= (x) nagyobb vagy egyenlő, mint (8) x>=8 HAMIS 1) IGAZ VAGY (x==5 y==5) HAMIS! NEM!(x==y) IGAZ Feltételes hozzárendelés A JS egy úgynevezett feltételes hozzárendelés (=conditional operator) is tartalmaz. A feltételes hozzárendelés két lehetséges érték közül a fetétel teljesülésének vagy meghiúsulásának megfelelően az elsőt vagy a másodikat rendeli a változóhoz. A feltételes művelet mondattana: változó=(feltétel)?érték1:érték2; Egy példa feltételes műveletre: greeting=(visitor==”pres”)?”dear President “:”Dear “; Mint látjuk, ez a greeting változóra vonatkozik. A feltétel szerint, hogyha a visitor változó értéke egyenlő PRES-sel, akkor az IGAZ műveleti értéknek megfelelő Dear President lesz a greeting értéke (melyet pl. egy document.write(greeting); paranccsal kiíratunk valahová); ellenkező esetben pedig csak Dear.
21 IX. JavaScript feltételes rendelkezések A feltételes rendelkezésekkel (=conditional statements) megadhatjuk, hogy az egyes feltételek teljesülését milyen akció kísérje. Feltételes rendelkezések A weboldalak írásakor igen gyakran felmerülő igény, hogy a felhasználó döntéseinek megfelelő dolog történjen meg (pl. megfelelő szöveg vagy dokumentum-részlet jelenjen meg). Ezt a kódba írt feltételes rendelkezésekkel érhetjük el. A JavaScriptben négyféle feltételes rendelkezés szerepel: if a böngésző akkor hajtja végre a kérdéses kód-részletet, ha a feltétel IGAZ; if else ha a feltétel IGAZ/HAMIS voltánakmegfelelően a böngésző egyik vagy másik kódrészletet hajtja végre. if else if else feltétetelt használunk, hogyha még több lehetséges kód-variáns közül kell a megfelelőt kijelölni. switch szintén akkor használjuk, hogyha számos lehetséges kód-variáns közül kell egyet kijelölni. Az if feltételes rendelkezés Az if feltételes rendelkezés tartalma csak akkor kerül végrehajtásra, ha a feltétel teljesül, vagyis a feltételül szabott művelet értéke IGAZ. A feltételes rendelkezés mondattana: if (feltétel-művelet) végrehajtandó kód Az if nevet mindig kisbetűkkel írjuk, másképp a rendelkezés nem működik! Következő példánkban a böngésző belső órájának aktuális idő-értékéhez képest, reggel 10 óra előtt a Good morning felirat jelenik meg (egyébként nem jelenik meg semmi): var d = new Date(); var time = d.gethours(); if (time < 10) document.write("good morning“);
this example demonstrates the If statement.
if the time on your browser is less than 10, you will get a “Good morning” greeting.
Mint látjuk, először meghatározzuk a d változót, melynek értékéül a böngésző belső órájának (az oldal betöltésekor) aktuális állását vesszük. Ezután a time változót definiáljuk, ami nem más, mint az előbbi időpontot jelölő számsorból az órák számértéke.
22 Majd következik a feltételes rendelkezés: hogyha a time, azaz az előbbi, egész órákra vonatkozó adat 10- nél kisebb, akkor a böngésző kiírja a Good morning szöveget, félkövér szedéssel. Hogyha az idő tíz óránál több, nincs felirat. Hogyha már későre jár, átírhatjuk a feltételt pl. 22-re, ekkor este 10 óra előtt még jó reggelt fog kívánni a böngésző. Az if else feltételes rendelkezés Az if else feltételes rendelkezést akkor használjuk, hogyha a feltétel betöltetlensége (vagyis a benne foglalt művelet NEM értéke) esetén is szeretnénk valamilyen rendelkezés teljesülését (következésképpen egy, az előzőtől eltérőét, hiszen egyébként nem kéne feltételhez kötni a megvalósulását). Az if else feltételes rendelkezés mondattana: if (feltétel-művelet) végrehajtandó kód no_1 else végrehajtandó kód no_2 Hogyha tehát a feltétel-művelet teljesül, a no_1, ellenkező esetben a no_2 kód lép érvénybe. Előző példánkat tehát most már egy alternatív (10 óra utánra vonatkozó) üdvözléssel is kiegészíthetjük: var d = new Date(); var time = d.gethours(); if (time < 10) document.write("good morning“); else document.write(“good day“);
This example demonstrates the If. Else statement.
If the time on your browser is less than 10, you will get a “Good morning” greeting. Otherwise you will get a “Good day” greeting.
10 óránál korábban a böngésző tehát Good morning-ot ír ki, ellenkező esetben pedig Good day-t. Az if else if else feltételes rendelkezés
23 Természetesen a második felirat megjelenését is köthetjük valamiféle feltételhez, melynek betöltetlensége esetére újabb, immár harmadik alternatívát adhatunk meg; s így a kezdeti if feltétel után korlátlan számú else, azaz további feltételt és azokhoz tartozó kód-variánsokat fűzhetünk. Az if else if else feltételes renedlkezése mondattana tehát (három lehetőséggel): if (feltétel-művelet no_1) végrehajtandó kód no_1 else (feltétel-művelet no_2) végrehajtandó kód no_2 else végrehajtandó kód no_3 Hogyha a feltétel-művelet no_1 teljesül, akkor a végrehajtandó kód no_1 lép érvénybe, ellenkező esetben pedig, a feltétel-művelet no_2 teljesülése esetén végrehajtandó kód no_2-nek megfelelő második alternatíva; ha pedig a második feltétel-művelet értéke is HAMIS, akkor a no_3 kód kerül végrehajtásra. A következőképpen bővíthetjük ki tehát előző példánkat: var d = new Date(); var time = d.gethours(); if (time<10) document.write("good morning“); else if (time>=10 && time<16) document.write("good day“); else document.write(“hello World!“);
This example demonstrates the if..else if. else statement.
Itt 10 óra előtt Good morning, 10 és 16 óra közt Good day, azután pedig Hello World! feliratot látunk. Mint látjuk, a második feltétel egy ÉS logikai művelet. Egy további példa: véletlen link Következő példánkban egy újabb gépi függvényt, a Math.random() véletlenfüggvényt használjuk fel,
27 X. JavaScript a switch feltételes rendelkezés Mint láttuk, a JS feltételes rendelkezései eltérő feltételek mellett eltérő kód végrehaktásához vezetnek. A switch feltételes rendelkezés A switch feltétel számos (a többszörös if else feltételekkel szemben nem hierarchikus) rendelkezési lehetőség közül választja ki az előírt értéknek leginkább megfelelőt. A switch feltételes rendelkezés mondattana (három lehetőséggel): switch(érték) case érték_1: végrehajtandó kód no_1 break; case érték_2: végrehajtandó kód no_2 break; default: végrehajtandó kód no_3 A switch rendelkezés feltételét (mely leggyakrabban egy változó) az érték szóval jelöltük. A böngésző ezen érték beolvasása után végignézi az összes esethez tartozó értéket (itt érték_1 és érték_2). Hogyha ezek közül valamelyik megegyezik a fő-értékkel, akkor az ahhoz tartozó rendelkezéseket végrehajtja. A break; szó beírásával meggátolhatjuk, hogy a kód végrehajtásakor a program túlfusson a következő eset szövegére. Enélkül a program az összes lehetőségnek megfelelő parancssort végrehajtja! A break; parancs tehát a parancssor futását leállítja, azaz amikor Hogyha a feltételnek egy eset-érték sem felel meg, akkor a program nem ír ki semmit. Ezért a switch lehetséges értékeinek felsorolása végére beírhatunk egy default, azaz alapértelmezett kódot. Hogyha a program egyezés-találat nélkül eljut idáig, akkor bármilyen feltétel esetén végrehajtja e rendelkezést. Következő példánkban a böngésző eltérő üdvözletet ír ki, attól függően, hogy épp a hét mely napján járunk: var d = new Date(); theday=d.getday(); switch (theday) case 5: document.write(“finally Friday“); break; case 6: document.write(“super Saturday“); break; case 0: document.write(“sleepy Sunday“); break; default: document.write(“i’m really looking forward to this weekend!“);
28
this JavaScript will generate a different greeting based on what day it is. Note that Sunday=0, Monday=1, Tuesday=2, etc.
Mint látjuk, a d változó értéke itt is a böngésző-óra (letöltéskor) aktuális értéke, melyből a theday változó a napra vonatkozó, 0 és 6 közötti számot választja ki. E változót a switch rendelkezés feltételéül választva, a pénteknek megfelelő 5-ös szám esetén félkövér Finally Friday felirat jelenik meg az oldalon, 6=szombat esetén Super Saturday, 0=vasárnapnál pedig Sleepy Sunday. Hogyha a nap-szám 1 és 4 közötti (hétfő-csürtörtök), akkor az alapértelmezett I m really looking forward to this weekend! szöveg jelenik meg hogyha pedig az utolsó (default) lehetőséget kitöröljük, akkor semmi. JavaScript a switch feltételes rendelkezés: A switch feltétel számos (a többszörös if else feltételekkel szemben nem hierarchikus) rendelkezési lehetőség közül választja ki az előírt értéknek leginkább megfelelőt. Mondattana (három lehetőséggel): switch(érték, pl. változó) case érték_1 pl. egy szám: végrehajtandó kód no_1 break; case érték_2 pl. másik szám: végrehajtandó kód no_2 break; default: végrehajtandó kód, ha az előző két case nem teljesült
29 XI. JavaScript felugró ablakok A JS-ben háromféle felugró ablakot alkalmazunk: figyelmeztető, megerősítő és beviteli ablakokat. Figyelmeztető ablak A figyelmeztető felugró ablakok segítségével (=alert popup boxes) olyan adatokat közlünk a felhasználóval, melyeket feltétlenül meg kell ismernie. A figyelmeztető ablak megjelenésekor a felhasználónak meg kell nyomnia az OK gombot a továbblépéshz (az oldal további használatához). A figyelmeztető ablak mondattana: alert( üzenet-szöveg ); Következő példánban egy gombot találunk, ami kattintásra egy figyelmeztető ablakot nyit meg:
function show_alert() alert(“hello! I am an alert box!”); A weboldal itt egyetlen beviteli mezőből áll, amit egy Show alert box feliratú gomb. A gombra kattintva a böngésző végrehajtja a show_alert nevű függvényt. Ennek tartalma egy figyelmeztető-ablak megjelenítése. Azaz az előbbi gombra kattintva, a függvény végrehajtásának eredményeképpen megjelenik egy párbeszédpanel, OK és X (=escape=kilépés) gombbal, valamint sárga hátterű, felkiáltójeles háromszög mellett az üzenettel: Hello! I am an alert box!. Mindaddig, míg az OK vagy X gombok közül valamelyiket meg nem nyomjuk, a böngészőt nem használhatjuk (az ugyanis nem reagál az egérkattintásra, hanem figyelmeztetőleg villogtatja a párbeszédpanelt). Megerősítő ablak A megerősítő ablakok (=confirm boxes) parancsok vagy adatok megerősítésére ill. elfogadására szolgálnak. Megjelenésük után a felhasználónak OK vagy Cancel gombot kell nyomnia a továbblépéshez. Az OK megnyomása esetén a doboz műveleti értéke IGAZ, Cancel esetén pedig HAMIS. A megerősítő ablak mondattana: confirm( üzenet-szöveg ); Következő példánban egy gombot találunk, ami kattintásra egy megerősítő ablakot nyit meg: function show_confirm()30 var r=confirm(“press a button!”); if (r==true) alert(“you pressed OK!”); else alert(“you pressed Cancel!”); Ebben az esetben a Show a confirm box gomb megnyomásakor a show_confirm függvény parancssorát hajtatjuk végre. Ennek első rendelkezése definiálja az r változót, aminek értéke megegyezik a felugró megerősítő ablak logikai értékével. A felugró ablak három gombbal (OK, Cancel és X), felirattal Press a button!, valamint egy kis kérdőjeles szövegbuborék-képecskével rendelkezik. Amíg nem nyomjuk meg valamelyik gombot, addig a böngésző a figyelmeztető ablaknál tapasztaltakhoz hasonlóan, nem használható. Az OK megnyomására egy You pressed OK! feliratú figyelmeztető ablak nyílik meg, melyet nyugtáznunk kell a böngésző-beli munkafolyamat folytatásához. A Canel megnyomásakor megjelenő figyelmeztető ablak felirata: You pressed Cancel!. Mint látjuk, a két figyelmeztető ablak közti választást egy if else feltételes rendelkezéssel oldjuk meg, ami a megerősítő ablak IGAZ értéke esetén (vagyis ha r==true) az első, minden más esetben pedig a második figyelmeztetést jeleníti meg, így pl. hogyha az X gombot nyomjuk meg, a felirat akkor is az else esetnek megfelelő You pressed Cancel!. Beviteli ablak A beviteli ablakokat általában akkor használjuk, ha a felhasználótól egy értéket (pl. jelszavat) akarunk kérni az oldalra való belépéshez. A beviteli ablakon OK, Cancel vagy X gomb megnyomásával juthatunk csak tovább a megadott értéknek megfelelő oldalra. Az OK gomb megnyomására a beviteli ablak felveszi a beírt értéket, a Cancel vagy X gomb esetében az értéke null (azaz tulajdonképpen üres) lesz. A beviteli ablak mondattana: prompt( üzenet-szöveg, alapértelmezett érték ); Következő példánban egy gombot találunk, ami kattintásra egy beviteli ablakot nyit meg:
function show_prompt() var name=prompt(“please enter your name”,”harry Potter”); if (name!=null && name!=””)31 document.write(“hello ” + name + “! How are you today?”); Mint látjuk, a weboldal betöltésekor csak a Show prompt box feliratú gombot tartalmazza. Erre kattintva a gép végrehajtja a show_prompt függvényt. Ennek parancssora először definiálja a name változót, melynek értékéül a beviteli ablak értékét választja. A beviteli ablak üzenet-szövege Please enter your name, alapértelmezett válasza pedig Harry Potter lesz. A gomb megnyomására tehát felnyílik az ablak, három gombbal, és a szövegbeviteli mezőben az alapértelmezett (Harry Potter) értékkel. Hogyha az OK gombot megnyomjuk, az ablak (és így a name változó is) felveszi a Harry Potter értéket; amit a parancssor if rendelkezésének feltételévelhasonlítunk össze. Hogyha a name értéke nem null ÉS nem üres (azaz ), akkor a böngésző kiírja a Hello name! How are you today? szöveget, ahol a name értéke jelen esetben Harry Potter, és a gomb eltűnik. Hogyha a Cancel vagy X gombot nyomjuk meg, az ablak értéke null, így az if feltételes rendelkezés feltétele HAMISnak bizonyulván, nem kapunk feliratot. Hogyha kitöröljük a szövegmezőből az alapértelmezett értéket és nem írunk be semmit, az ablak értéke üres ( ), minek folytán megint nem kapunk feliratot. Amíg a beviteli ablakon nem nyomunk meg egy gombot sem, addig itt sem folytathatjuk a böngészőbeli munkamenetet. Ablak-üzenetek sortörése Alábbi példánkban egy figyelmeztető ablak példáján bemutatjuk, hogyan lehet az ablakok üzenetszövegébe sortörést írni:
function disp_alert() alert(“hello again! This is how we” + ‘\n’ + “add line breaks to an alert box!”); Mint látjuk, a Display alert box feliratú gomb megnyomására a disp_alert függvény megjeleníti az alert párbeszédpanelt (figyelmeztető ablakot), melyben a Hello again! This is how we add line breaks to an alert box!32 felirat jelenik meg. A figyelmeztető ablak üzenet-szöveg-értékébe, a kettős idézőjelekbe írt többi szövegrészlet közé a + \n + kifejezést írva, a kérdéses helyen sortörés lesz. Megerősítő és beviteli ablak-üzenetek sortörésében is ugyanígy járunk el, pl.: confirm( Első sor + \n + Második sor ); ill. prompt( Első sor + \n + Második sor, Alapértelmezett érték ); JavaScript felugró ablakok: Figyelmeztető ablak: alert( üzenet-szöveg ); Megerősítő ablak: confirm( üzenet-szöveg ); Kétféle (true/false) logikai értéket vehet fel! Beviteli ablak: prompt( üzenet-szöveg, alapértelmezett érték ); A beírt szöveget vagy null-t vehet fel értékként! Sortörés az üzenet-szövegben: \n alert( Első sor + \n + Második sor ); confirm( Első sor + \n + Második sor ); prompt( Első sor + \n + Második sor, Alapértelmezett érték ); Példák: Megerősítő ablak: function show_confirm() var r=confirm(“press a button!”); if (r==true) alert(“you pressed OK!”); else alert(“you pressed Cancel!”); Bevitali ablak: function show_prompt() var name=prompt(“please enter your name”,”harry Potter”); if (name!=null && name!=””) document.write(“hello ” + name + “! How are you today?”);
33 XII. JavaScript függvények A JS-függvények valamely esemény bekövetkezésekor vagy a parancssor meghívására lépnek életbe. JavaScript függvények Annak értdekében, hogy a böngésző ne az oldal betöltésekor hajtsa végre az összes JS-rendelkezést, annek egyes részleteit függvényekbe zárhatjuk. A függvényekbe írt kódot a böngésző csak bizonyos felhaszálói akció vagy egy különálló meghívóparancsra hajtja végre. A függvények az oldal bármely részéből ill. más oldalakról is meghívhatók (feltéve, hogy utóbbi esetben a függvény egy külső.js fájlban található). A függvények így a dokumentumnek mind a fejrészében, mind pedig (szöveg)testében megtalálhatók lehetnek; azonban annak érdekében, hogy a böngésző biztos beolvassa, mielőtt meghívásra kerülne, célszerű a
részbe írni. Függvények definiálása A függvény-definiálás mondattana: function függvény-név(változó_1,változó_2,,változó_x) végrehajtandó kód A függvény paraméterei a változó_1 változó_x-szel jelölt változók ill. konkrét értékek. A és kapcsos zárójel a függvény(érték) kezdetét és végét jelzi. A paraméterekkel nem rendelkező függvény neve után is fel kell tüntetnünk a zárójeleket! Ne feledkezzünk meg a JS esetfüggéséről, azaz a function szót mindig kisbetűvel írjuk (különben a JS nem működik), ill. a függvény-névre mindig azonos alakban hivatkozzunk (különös tekintettel a kis- vagy nagybetűkre! Egy gyors példa Következő példánkban egy gomb megnyomásával meghívott függvény figyelmeztető ablakot jeleníttet meg a böngészővel: function displaymessage() alert(“hello World!”);by pressing the button above, a function will be called. The function will alert a message.
Mint látjuk, a Click me! Feliratú gomb megnyomásakor a displaymessage függvény megjeleníti a Hello World! feliratú figyelmeztető ablakot.
34 Hogyha a elembe írt alert( Hello World! ); rendelkezést nem ágyaztuk volna be egy függvénybe (jelen esetben a displaymessage-be), akkor már az oldal megjelenítésekor végrehajtotta volna a böngésző. Jelen esetben azonban a rendelkezésnek megfelelő üzenet csak a felhasználó gombnyomására (azaz egy meghatározott eseményre) jelenik meg. A JS-eseményekről egy későbbi fejezetben (JavaScript események) lesz szó. A return rendelkezés A függvényeket nemcsak parancsok végrehajtására, hanem értékek átalakítására is használhatjuk. A return rendelkezéssel beállíthatjuk, hogy a betáplálthoz képest milyen értéket szolgáltasson vissza a függvény. Tehát az érték-képzésre használt függvényeknek return rendelkezést tartalmaznak. A következő példánkban szereplő függvény visszaszolgáltatott értéke két változó (a és b) szorzata:
function product(a,b) return a*b; document.write(product(4,3));the script in the body section calls a function with two parameters (4 and 3).
the function will return the product of these two parameters.
Mint látjuk, a szövegtestbe írt document.write parancs meghívja a fejrészben lévő product függvényt a 4,3 paraméterekkel. A függvény végrehajtja a return a*b; parancsot a két számon, mint a ill. b értéken, és a böngésző ezt írja ki. Nem kell azonban közvetlenül a product függvénybe ill. annak meghívásába beírnunk a változók aktuális értékét, elegendő azoka különállóan definiálni:
function product(a,b) return a*b; var q=5; var w=5;
Comments are closed, but trackbacks and pingbacks are open.