JavaScript I. KÖNYV: ALAPOK
Az eredeti könyvet fizetett változatban adták kiírta: O’Reilly. De Add Osmani kiadott egy ingyenes verziót az interneten. A könyve az MVC Fundamentals, a BackboneBasics, a Todo alkalmazások készítése a BackboneJS segítségével, a könyvtári alkalmazások készítése a BackboneJS és a NodeJS segítségével, a BackboneJS kiterjesztéseinek megismerése, a BackboneJS segítségével történő lapozás megismerése és még sok más.
6. Egyoldalas alkalmazások a mélységben – Mixu (Mikito Takada)
Современный учебник JavaScript [3 книги], PDF, 2019
Оффлайн версия учебника, предназначенная для людей у которых например, отсутствует интернет или для чтения с мобильных устройств.
Все книги представленные на сайте WEB-Программист только в ознакомительных целях. Любое их использование Вами допускается только в ознакомительных целях. Если Вы планируете их использовать в дальнейшем, то Вы обязаны приобрести их у правообладателей. Администрация сайта не несет ответственность за их использование Вами
Все книги представленные на сайте WEB-Программист только в ознакомительных целях. Любое их использование Вами допускается только в ознакомительных целях. Если Вы планируете их использовать в дальнейшем, то Вы обязаны приобрести их у правообладателей. Администрация сайта не несет ответственность за их использование Вами
Все книги представленные на сайте WEB-Программист только в ознакомительных целях. Любое их использование Вами допускается только в ознакомительных целях. Если Вы планируете их использовать в дальнейшем, то Вы обязаны приобрести их у правообладателей. Администрация сайта не несет ответственность за их использование Вами
Смотри также:
Эффективный TypeScript. 62 способа улучшить код, PDF, 2020
«Эффективный TypeScript» необходим тем, кто уже имеет опыт работы с .
Изучаем AJAX, Маклафлин Б.
Книга посвящена технологии веб-программирования Ajax, стоящей на ступень выше базовых .
Enterprise Development with Flex
If you want to use Adobe Flex to build production-quality .
Node.js в действии 2018 PDF Янг А., Мек Б., Кантелон М.
Второе издание «Node.js в действии» было полностью переработано, чтобы отражать .
JavaScript. Оптимизация производительности, Николас Закас (2012, PDF)
Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко .
Написать нам
– WP Star Премиум темы и плагины бесплатно –
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie | Duration | Description |
---|---|---|
cookielawinfo-checbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Analytics”. |
cookielawinfo-checbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category “Functional”. |
cookielawinfo-checbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Other. |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category “Necessary”. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Performance”. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
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.