A JavaScript string-jei lehetnek üresek, vagy tartalmazhatnak egy vagy annál több karaktert, ezeket szimpla vagy dupla aposztrófok közé kell zárni
A string típusa "string":
Ha egy string aposztrófor tartalmaz, használjuk a string határainak ejlölésére a másik típusú aposztrófot, vagy \ karakterrel védjuük le a jelentését:
A JavaScript számos stringkezelő metódust tartalmaz, a végeredmény mindig egy új string, vagy más, pl a split tömböt ad vissza.
Egy string hosszát a lenght tulajdonságának(property) lekérésével kapjuk meg:
Egy üres string alapesetben false
a számok típusa "number":
Ha egy szám nulla, akkor a boolean értéke false.
A számok és a double értékének pontosságának köszönhetóen a következő eredmény nem hiba:
A JavaScript, a számokkal való munkára a Math objektumban kínál eszközöket.
parseInt és parseFloat segít stringeket számmá konvertálni.
JavaScriptben számok összeadására és stringek konkatenálására is a + jelet használjuk. Ha 2 szám közé + jelet teszünk, a számokat adjuk össze. ha nem ez a célunk, az összedás elejére üres stringet írva stringet kapunk eredményként
Ezen kívül használhatjuk a String osztályt:
ha nem számot próbálunk konvertálni, NaN-t kapunk:
Nullával osztás végtelent ad
A NaN és a végtelen típusa is number
NaN-ok összehasonlítása érdekes eredményt ad:
végtelen esetén viszont
Egy integer egy sima Number típus, de bármikor explicit leírható, egy nem lebegőpontos számot jelől.
Egy float egy sima Number típus, akár az integer, de bármikor explicit leírható, egy lebegőpontos számot jelől.
JavaScript-ben a boolean true vagy false lehet:
Ha egy option-t booleanként haszánlunk, az gyakran így néz ki:
JavaScript-ben minden objektum, de néha több annál:) A legegyszerűbb módja, hogy objektumot hozzunk létre, a literál:
az objektumok típusa object
A pont segítségével tudjuk lekérdezni vagy beállítani egy objektum tulajdonságait(property). Az előző példát felhasználva:
Ha asszociatív tömbként használjuk az adatszerkezetünket, a [] jelekkel férünk hozzá a tartalmához:
A nyelv lehetőséget ad a for használatával végig haladni az adatszerkezez minden elemén.
megjegyezzük, hogy a for-in-loop elrontható az Object.prototype (lásd Object.prototype tiltott) , szóval csínyán bánj a külső könyvtárak alkalmazásával.
jQuery kínál egy generikus ún. each-function függvényt, mellyel bejárhatod az objektumok tulajdonságait(property), mint egy tömb elemeit.
A hátrány az, hogy a callback minden érték kontextusában meghívódik, ezért elveszted a saját objektumod kontextusát.
Minden objektum rendelkezik egy prototípus (prototype) tulajdonsággal. jQuery-ben ezek segítségével tudunk metudusokat létre hozni:
A jQuery options-ök egyszerű JavaScript objektumok. Abban az esetben, ha az Options van megadva típusként, akkor ez a tárgy és annak minden tulajdonsága(property) opcionális. Vannak kivételek, ahol legalább egy option szükséges. Az option-öket leggyakrabban az AJAX-metódusokban használjuk. Majdnem minden jQuery csatlakozás biztosít options-alapú API-t: Ezek konfiguráció nélkül működnek, de a felhasználónak lehetővé teszi, hogy testre szabhassák, ha szükséges.
Tekintünk egy példát a form pluginból. Elküldhetsz egy form-ot AJAX-on kersztül a következő egyszerű kóddal:
Ebben az formában a form action-attribútumát, mint AJAX-URL és a form method-attribútumát, mint annak meghatározása, hogy a metódus GET vagy a POST használja. Ezek felüldefiniálhatóak, optionként való megadással:
a JavaScript tömbök valójában dinamikus listák néhány beépített metódussal. Tömb definiálásához használjuk a következőt:
A típus tömbje "objektum":
tömbök írására és olvasására a tömbös jelölést használjuk:
A tömböknek a length tulajdonsága(property) hasznos lehet számunkra:
Ha fontos a teljesítmény, a length tulajdonságot(property) csak egyszer kiolvasva optimalizálhatunk a végrehajtáson:
Egy másik lehetőség, hogy foreach-szerően haladunk végig a tömbön:
Egy másik lehetőség szerint készítünk egy változód, ami minden iterációban értéket kap, eltávolítva ezzel a tömbös jelölést a ciklusmagból. Ez a módszer nem használható, ha a tömb tartalmaz nullát vagy üres stringet.
jQuery biztosít egy generikus each függvényt, mellyel végigiterálhatunk a tömbök elemein, valamint properties objektumokon:
A hátrány az, hogy a callback minden érték kontextusában meghívódik, ezért elveszted a saját objektumod kontextusát.
a length segítségével új elemet is adhatunk a tömbhöz. Ugyan azt az eredményt érjük el a push metódus használatával:
mindkét verzióval fogsz találkozni, ha a JavaScript library-ket nézegeted
Egyéb beépített metódusok a reverse, join, shift, unshift, pop, slice, splice és a sort:
Egy tömb, függetlenül attól, hogy tartalmaz-e elemet vagy nem, sosem false értékű
a jQuery API-ban gyakran találkozhatsz a következő jelöléssel:
Ezt azt jelenti, hogy a metódus nem csak tömböt vár argumentumként, hanem azt is specifikálja, hogy milyen típusokat tartalmazhat az elvárt tömb.
A map típus az AJAX függvények által használatosak arra, hogy tárolják egy kérés (request) adatait.
Szerveroldalon ez így néz ki (PHP-ban):
A JavaScript függvények rendelkezhetnek névvel, de lehetnek névtelenek is. Egy függvényt értékül adhatunk egy változónak, vagy átadni egy metódusnak, így meghívhatóak egy másik objektum kontextusában is (például egy másik "this" objektummal)
a jQuery kódban gyakran szerepelnek névtelen függvények:
a függvények típusa "function".
a függvények belsejében mindig elérhető egy speciális "arguments" változó. Hasonlít egy tömbhöz, aminek van lenght tulajdonsága(property), de hiányoznak belőle a beépített metódusok. A pszeudó-tömb elemei az argumentumai a függvényhívásnak.
az argumentum objektumoknak van egy "calee" tulajsonságuk, ami arra a függvényre hivatkozik, amiben használjuk:
JavaScriptben a "this" változó mindig az aktuális környezetre hivatkozik. Alapesetben a window objektumra hivatkozik. Egy függvénnyben ez megváltozhat, attól függően, hogy hol hívtuk a függvényt.
A jQueryben minden eseménykezelő az adott elemhez van hozzárendelve.
JavaScriptben minden függvényben definiált változó csak a függvényen belül látható:
Tekintsük a következő példát:
Ez egy x változót definiál globálisként, aztán definiál egy névtelen függvényt, és azonnal végre is hajtja (a zárójelek szükségesek az azonnal futtatáshoz) A függvényben egy másik x változó egy másik értékkel szerepel. ez csak a függvényen belül látható, és nem írja felül a globális változót.
Akkor jönnek létre, amikor az aktuális hatáskörön kívül definiált változóhoz férünk hozzá egy belső hatáskörből. A következő példában a counter változó látható a create, increment és print függvényekből, de kívül nem.
Keverjük össze a fenti ismereteket, például implementáljuk le a közvetítő retvezési mintát JavaScript segítségével:
A függvény elrejti a közvetítendő proxied változót. Lementi a jQuery setArray metódusát egy lezárásba, majd felülírja azt. A közvetítő loggol minden hívást, és meghívja az eredetit. Az apply használata garantálja, hogy a hívó nem tudja megkülönböztetni az eredezit a közvetítőtől.
a callback egy egyszerű JavaScript függvény, ami metódusnak van átadva, mint argumentum vagy opció. némely callbackek sima események, lehetőséget biztosítva ezáltal a fejlesztőnek, hogy bizonyos állapotváltozásokra reagálni tudjon. jQuery eseményrendszere ilyen callback-eket használ mindenhol:
A a legtöbb callback gondoskodik argumentumokról és egy konetxtusról. Az eseménykezelő példában, a callback egyetlen egy argumentummal, az Eventtel lett meghívva. A kontextus maga a kezelő elem, a fenti példában a document.body.
Némely callbacknek vissza kell térnie valamilyen értékkel, másoknál ez opcionális. Megelőzni egy űrlap beküldését a beküld (submit) eseménykezelő vissza tud térni false értékkel:
Ahelyett, hogy mindig hamissal térne vissza, a callback ellenőrizheti a mezőket az űrlapban validálási céllal és csak akkor tér vissza hamissal, ha az űrlap nem megfelelően van kitöltve.
a selector a jQuery-ben arra való, hogy kiválasszunk egy DOM elemet a DOM dokumentumból. Ahogy a dokumentumok áltlában, a DOM dokumentum is megjelenik a böngészőben, de lehet egy XML is, amit egy AJAX hívás adott vissza.
A szelektorok CSS és egyéb elemekből állnak. XPaht selectorok kigészítőként (pluginként) érhetőek el.
A jQuery összes selectora dokumentálva van a Selectos API page oldalon
Sok plugin létezik, melyek valahogyan befolyásolják a selectorok működését. A validációs plugin elfogad egy selector, hogy specifikáljon egy függőséget, hogy mely input kötelező és melyik nem:
a jQuery esemény rendszere a W3C ajánlása szerint normalizálja az eseményeket. Egy esemény objektumot garantáltan egy eseménykezelő fog megkapni.
A szabványos események a DOM-ban: blur, focus, load, resize, scroll, unload, beforeunload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup.