Standard objektumok: Set, Map, Date, JSON, Math, RegExp, …
Set
A halmaz egy olyan adatstruktúra, melyben az összes elem egyszer szerepelhet (típus szerint is történik az egyenlőség vizsgálat). Az adatok sorrendje attól függ, hogy melyiket mikor szúrták be. Nézzünk rá egy pillanatra a lenti példára. Amikor a halmazt először inicializáljuk egy tömbbel több elemmel benne, a halmaz nem egyetlen elemmel fog rendelkezni, hanem azon tömb elemeivel. A későbbiekben egy tömb egy eleme lesz a halmaznak. Erre fokozottan ügyelnünk kell!
var halmaz = new Set(['1','2','1','1']);
halmaz.add(['1','3']);
halmaz.add({tulajdonsag1: 'ertek1', tulajdonsag2: 'ertek2'});
console.log(halmaz.size);
// 4
halmaz.forEach(elem => {
console.log(elem);
// 1
// 2
// ['1','3']
// Object {tulajdonsag1: 'ertek1', tulajdonsag2: 'ertek2'}
});
| Tulajdonság | Leírás |
|---|---|
| Set.prototype.constructor | Visszatér a halmaz konstruktor függvényével |
| Set.prototype.size | Visszatér a halmaz méretével |
| Metódus | Leírás |
|---|---|
| Set.prototype.add(ertek) | Új értéket ad |
| Set.prototype.clear() | Az összes érték törlődik a set példányában |
| Set.prototype.delete(ertek) | Azon érték törlődik a set példányában, amelynek értéke megegyezik a metódus argumentumába írt értékkel |
| Set.prototype.forEach(fuggveny) | Az összes elemen végigiteráltatja a set példányán a metódus argumentumában definiált függvényt |
| Set.prototype.has(ertek) | Visszatér az egyik logikai értékkel aszerint, hogy a metódus argumentumában a paraméter értéke szerepel-e a set példányában |
| Set.prototype.values() | Visszatér az összes kulcs-érték pár értékével, ami a set példányában található |
| Set.prototype.keys() | Visszatér az összes kulcs-érték párral, ami a set példányában található |
Map
Olyan adatstruktúra, melynél számít az adatok sorrendje (kulcs). Az adatok sorrendje attól függ, hogy melyiket mikor szúrták be. Minden belefoglalt elem kulcs-érték pároknak feleltetehtő meg. Elemei rendelkezhetnek bármilyen érvényes adattípussal (primitív vagy objektum). Kulcs-érték párokat hozzá adhatunk az add(kulcs,ertek) metódussal, az adott kulcshoz tartozó értékkel pedig a get(kulcs) metódussal férhetünk hozzá. Amikor a Map-et először inicializáljuk egy tömbbel több kulcs-érték párral benne, a Map nem egyetlen elemmel fog rendelkezni, hanem azon tömb kulcs-érték párjával. Erre fokozottan ügyelnünk kell!
let valami = new Map([
['uborka', 500],
['paradicsom', 350],
['hagyma', 50]
]);
valami.set('1', 'string');
valami.set(1, 'szam');
valami.set(true, 'logikai');
console.log(valami.get(1));
// szám
console.log(valami.get('1'));
| Tulajdonság | Leírás |
|---|---|
| Map.prototype.constructor | Visszatér a Map példányának konstruktor függvénnyel |
| Map.prototype.size | Visszatér a Map példányának mérettel |
| Metódus | Leírás |
|---|---|
| Map.prototype.clear() | Az összes kulcs-elem pár törlődik a Map példányában |
| Map.prototype.delete(kulcs) | Azon kulcs-érték pár törlődik a Map példányában, amelynek kulcsa megegyezik a metódus argumentumába írt értékkel |
| Map.prototype.forEach(fuggveny) | Az összes elemén végigiteráltatja a Map példányán a metódus argumentumában definiált függvényt |
| Map.prototype.get(kulcs) | Visszatér a kulcshoz rendelt értékkel |
| Map.prototype.has(kulcs) | Visszatér az egyik logikai értékkel aszerint, hogy a metódus argumentumában a paraméter értéke szerepel-e a Map példányában |
| Map.prototype.set(kulcs, ertek) | Új kulcs-érték párt ad a Map példányához |
| Map.prototype.values() | Visszatér az összes kulcs-érték pár értékével, amit a Map példánya tartalmaz |
| Map.prototype.keys() | Visszatér az összes kulcs-érték pár kulcsával, amit a Map példánya tartalmaz |
Date
JavaScriptben a new Date() (dátum) egy objektum példányt hoz létre, ami a pillanatnyi időt képviseli. Az UNIX időbéjegzőt használja ami azt jelenti, hogy az 1970 január elseje óta eltelt tizedmásodperceket számolja (mint egész szám) UTC-szerint. Negatív tizedmásodperc értékek is értelmezve vannak. A példányok gettereiről és settereiről (beleértve a különböző dátumformátumokat és időzónákat).
var datum = new Date();
/*
a datum erteke a pillanatnyi idő, példa erre:
Fri Mar 29 2019 09:58:18 GMT+0100 (közép-európai téli idő)
*/
var datum = new Date(2018, 11, 24, 10, 33, 30, 0);
// Mon Dec 24 2018 10:33:30 GMT+0100 (közép-európai téli idő)
var datum = new Date(0);
/*
az argumentumba a tizedmásodpercet is lehet írni, akkor az eredmény:
Thu Jan 01 1970 01:00:00 GMT+0100 (közép-európai téli idő)
*/
var datum = new Date("October 13, 2014 11:13:00");
// Mon Oct 13 2014 11:13:00 GMT+0200 (közép-európai nyári idő)
JSON
A JSON (JavaScript Object Notation) egy olyan JavaScript adatstruktúra (és egyben fájlformátum - json), amiben ami több értéket tartalmazhat és egy érték többször is szerepelhet. Értékei lehetnek "" közé írt tömb, szám (kivéve az oktális és hexadecimális számrendszer), objektum, logikai érték, null. Ezen értékek egymásba ágyazhatóak Maga a struktúra nyelvfüggetlen, több nyelvhez is van értelmezője. Leginkább szerverek közti adatkommunikációban használják. A JSON-nak kétféle felépítését ismerjük:
• Értékek listája
• Kulcs-érték párok halmaza
Értékek listája
• Asszociatív tömb, objektum, kulcsos lista, rekord, hasítótábla, szótár.
• A JavaScript tömb literálhoz hasonlóan tartalmát [] blokkba is foglaljuk. Az értékeket ""-ba foglaljuk. A különálló értékeket ,-vel választjuk el egymástól.
[
{"kulcs1":"ertek1", "kulcs2":"ertek2"},
{"kulcs3":"ertek3", "kulcs4":"ertek4"}
]
Kulcs-érték párok halmaza
• Szekvencia, tömb, lista, vektor.
• Az JavaScript objektum literálhoz hasonlóan tartalmát {} blokkba is foglaljuk. Elemei kulcs-érték párokból állnak. A kulcsokat ""-ba foglaljuk. A kulcsot követően az értékadás :-el történik, azt követi maga az érték. Az értékeket ""-ba foglaljuk. A szintaxisából adódóan könnyedén átalakítható JavaScript objektumokká.
{"kulcs1":"ertek1", "kulcs2":"ertek2"}
| Metódus | Leírás |
|---|---|
| JSON.parse() | Ez a metódus átalakít egy JSON stringet és visszatér egy adatszerkezettel |
| JSON.stringify() | Ez a metódus átalakít egy adatszerkezetet és visszatér egy JSON stringgel |
Math
A Math egy olyan objektum, ami matematikai függvényekkel és konstansokkal térhet vissza. Ellentétben a többi 'globális' objektummal, nem rendelkezik konstruktorral, az összes tulajdonság és metódus statikus.
console.log(Math.PI);
// 3.141592653589793
console.log(Math.sqrt(16));
// 4
| Tulajdonság | Leírás |
|---|---|
| Math.E | Visszatér az Euler konstans közelített értékével |
| Math.LN2 | Visszatér a 2 természetes alapú logaritmusának közelített értékével |
| Math.LN10 | Visszatér a 10 természetes alapú logaritmusának közelített értékével |
| Math.LOG2E | Visszatér az E kettes alapú logaritmusának közelített értékével |
| Math.LOG10E | Visszatér az E tizes alapú logaritmusának közelített értékével |
| Math.PI | Visszatér a PI közelített értékével |
| Math.SQRT1_2 | Visszatér az 1/2 négyzetgyökének közelített értékével |
| Math.SQRT2 | Visszatér a 2 négzetgyökének közelített értékével |
| Metódus | Leírás |
|---|---|
| Math.abs(szam) | Visszatér a szam abszolút értékével |
| Math.acos(szam) | Visszatér a szam arkusz koszinuszának közelített értékével |
| Math.acosh(szam) | Visszatér a szam arkusz koszinusz hiperbolikuszának közelített értékével |
| Math.asin(szam) | Visszatér a szam arkusz szinuszának közelített értékével |
| Math.asinh(szam) | Visszatér a szam szinusz hiperbolikuszának közelített értékével |
| Math.atan(szam) | Visszatér a szam arkusz tangensének közelített értékével |
| Math.atanh(szam) | Visszatér a szam arkusz tangensének közelített értékével |
| Math.cos(szam) | Visszatér a szam koszinuszának közelített értékével |
| Math.cosh(szam) | Visszatér a szam koszinusz hiperbolikuszának közelített értékével |
| Math.exp(kitevo) | Visszatér az Euler szám kitevo-edik hatványának közelített értékével |
| Math.floor(szam) | Visszatér a szám egészre (lefelé) kerekített értékével |
| Math.log(szam) | Visszatér a szam természetes alapú logaritmusának közelített értékével |
| Math.log2(szam) | Visszatér a szam kettes alapú logaritmusának közelített értékével |
| Math.pow(alap, kitevo) | Visszatér az alap kiveto-edik hatványával |
| Math.random() | Visszatér 0 és 1 közötti random számmal egyenletes eloszlással |
| Math.round(szam) | Math.sign(szam) |
| Math.sin(szam) | Visszatér a szam szinuszának közelített értékével |
| Math.sinh(szam) | Visszatér a szam szinusz hiperbolikuszának közelített értékével |
| Math.sqrt(szam) | Visszatér a szam nényzetgyökének közelített értékével |
| Math.tan(szam) | Visszatér a szam tangensének közelített értékével |
| Math.tanh(szam) | Visszatér a szam tangens hiperbolikuszának közelített értékével |
| Math.trunc(szam) | Visszatér a szam egész részével, levágva a tizedespont utáni számjegyeket |
RegExp
A gyakran mintának nevezett reguláris kifejezés (regular expression) a jelsorozatok, stringek egy halmazát határozza meg. A minták használatával tömören megadhatók halmazok leírásai anélkül, hogy az összes elemüket fel kell sorolni. A reguláris kifejezés Javascriptben egy olyan objektum (RegExp), amelynek vannak előre definiált tulajdonságai és metódusai. Szintaxisa szerint a mintát // közé illesztjük, utána pedig az úgynevezett módosítókat. Ezt adjuk értékül egy változónak. Egyik leggyakoribb felhasználása különböző beviteli mezők ellenőrzése, például megvizsgálhatjuk, hogy a megadott e-mail cím formátuma helyes-e. Ezen kívül szövegcseréket is végre tud hajtani [8]. Kétféleképpen hozhatunk létre:
• Literál
• Konstruktor
Szintaxisuk szerint az köztük a különbség, hogy az előbbinél nincs definiálva a módosító, az utóbbinál viszont igen. A legtöbb formalizálásánál a következő operátorok használatával konstruálhatók meg a megfelelő reguláris kifejezések [8]:
| Tulajdonság | Leírás |
|---|---|
| constructor | Visszatér azzal a függvénnyel (konstruktor), ami a RegExp objektum prototípusát létrehozta |
| global | Ellenőrzi, ha a g módosító be van-e állítva |
| ignoreCase | Ellenőrzi, ha az i módosító be van-e állítva |
| lastIndex | Visszatér egy számmal ami meghatározza azon karakter pozícióját egy sztringen belül, ahol a legutóbbi egyezést találtuk az exec() vagy a test() metódus végrehajtásával |
| multiline | Ellenőrzi, ha az m módosító be van-e állítva |
| source | Visszatér a RegExp mintájával String formában |
| Metódus | Leírás |
|---|---|
| exec() | Mintaillesztést végez az adott stringre és visszatér az első találatra |
| test() | Mintaillesztést végez az adott stringre és visszatér egy logikai értékkel |
| toString() | Visszatér az argumentumában definiált reguláris kifejezés string értékével |
Módosítók
Felülírják a reguláris kifejezések normál működését [8].
| Módosítók | Leírás |
|---|---|
| i | Érzéketlen mintaillesztést tesz lehetővé |
| g | Globális mintaillesztést tesz lehetővé (nem áll meg az első találatnál, az öszesre rákeres) |
| m | Többsoros mintaillesztést tesz lehetővé |
console.log("Elso masodik".match(/elso/i));
// Elso
console.log("Elso masodik elso masodik?".match(/elso/g));
// elso,elso
console.log("\nElso th\nelso".match(/^is/n));
// Elso
Csoportosítás
A zárójelek az operátorok hatásköre elsőbbségének a meghatározására szolgálnak. Általában egy tartománynyi karaktersorozat keresése során alkalmazzák [8].
| Kifejezés | Leírás |
|---|---|
| [abc] | Minden karaktert megtalál, ami a zárójelben megtalálható |
| [0-9] | Minden számjegyet megtalál, ami a zárójelben megtalálható |
| (x|y) | Megtalálja a | - el elválasztott mintáknak megfelelő karakter sorozatokat |
console.log("Elso masodik nyolcadik".match(/[l]/g));
// l,l
console.log("987654321".match(/[1-4]/g));
// 4,3,2,1
console.log("ol, zold, voros, zold, gren, zo, kek, sarga".match(/(voros|zold)/g));
// zold,voros,zold
Metakarakterek
Mindegyiknek megvan a saját jelentése [8].
| Metakarakter | Leírás |
|---|---|
| \d | Megtalálja a számjegyeket |
| \s | Megtalálja a szóközöket |
| \b | Megtalálja az adott karakter sorozattal kezdődő és végződő karakter sorozatokat |
console.log("12345 egy ketto harom negy ot".match(/\d/g));
// 1,2,3,4,5
console.log("Mennyi szokoz talalhato ebben a szovegben?".match(/\s/g));
// , , , , ,
console.log("A programozas egy kiraly dolog".match(kiraly));
// kiraly
Mennyiségjelzés
A mennyiségjelző egy karakter vagy csoport után azt határozza meg, hogy hányszor fordulhat elő a megelőző kifejezés [8].
| Mennyiségjelző | Leírás |
|---|---|
| + | Jelzi, hogy a megelőző kifejezés legalább 1 esetben fordulhat elő |
| * | Jelzi, hogy a megelőző kifejezés akárhány esetben fordulhat elő (beleértve a nullát is) |
| ? | Jelzi, hogy a megelőző kifejezés csak 0 vagy 1 esetben fordulhat elő |
console.log("Hellooo Vilag! Gyujtsuk ki és határozzuk meg a csoportositott es a kulonallo o karaktereket!".match(/o+/g));
// ooo,o,o,o,o,o,o
console.log("Hellooo Vilag! Ez egy pelda szoveg lenne azon vizsgalathoz, amikor olyan karakter sorozatokat kell kiszűrni, amikor a minta az l es o karakterek valamelyikét tartalmazza, tovabba a sorrend szamit!".match(/lo*/g));
// l,looo,l,l,l,l,l,l,l,l,l,l,l
console.log("101, 1000 or 10?".match(/10?/g));
// 10,1,10,10
Irodalomjegyzék
[1] | Vue.js core team. Vue.js: The Progressive JavaScript Framework. https://vuejs.org, Legutóbb megtekintve: 2019. április 22. |
[2] | Vue.js core team. API, Global Config, directive. https://vuex.vuejs.org/vuex.png, Legutóbb megtekintve: 2019. április 22. |
[3] | Vue.js core team. API, Global Config, computed. https://vuejs.org/v2/api/#computed, Legutóbb megtekintve: 2019. április 22. |
[4] | Vue.js core team. API, Global Config, components. https://vuejs.org/v2/api/#components, Legutóbb megtekintve: 2019. április 22. |
[5] | Vue.js core team. Vue-CLI. https://cli.vuejs.org/guide/creating-a-project.html#vue-create, Legutóbb megtekintve: 2019. április 22. |
[6] | Vue.js core team. Vue-router. https://router.vuejs.org/guide/#html, Legutóbb megtekintve: 2019. április 22. |
[7] | Vue.js core team. Render Functions and JSX. https://vuejs.org/v2/guide/render-function.html, Legutóbb megtekintve: 2019. április 22. |
[8] | w3schools core team. JavaScript RegExp Reference. https://www.w3schools.com/jsref/jsref_obj_regexp.asp, Legutóbb megtekintve: 2019. április 22. |
[9] | Google Chrome DevTools core team. Chrome DevTools. https://developers.google.com/web/tools/chrome-devtools, Legutóbb megtekintve: 2019. április 22. |
[10] | Node.js core team. Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. https://nodejs.org/en/, Legutóbb megtekintve: 2019. április 22. |
[11] | NPMJS core team. NPMJS. https://www.npmjs.com, Legutóbb megtekintve: 2019. április 22. |
[12] | ExpressJS core team. Express Fast, unopinionated, minimalist web framework for Node.js. https://expressjs.com, Legutóbb megtekintve: 2019. április 22. |
[13] | EJS core team. EJS: Embedded JavaScript templating. https://ejs.co, Legutóbb megtekintve: 2019. április 22. |
[14] | Olga Filipova. Learning Vue.js 2. Packt Publishing Ltd., Livery Place, 35 Livery Street, Birmingham, B3 2PB, UK, 3, 2016. |
[15] | E.F. Codd. A relational Model of Data for Large Shared Data Banks. Communications of the ACM, 13 (6) 1970. |
[16] | Papp Edit. Adatbáziskezelés. Booklands 2000 Könyvkiadó Kft., 5600 Békéscsaba, Dr. Becsey Oszkár u. 42., 1, 2004. |
[17] | Nemzeti Szakképzési és Felnőttképzési hivatal. Szoftverfejlesztő tanfolyam. https://www.nive.hu, Legutóbb megtekintve: 2019. április 22. |
[18] | JavaScript.info core team. JavaScript.info. https://javascript.info/promise-basics, Legutóbb megtekintve: 2019. április 22. |
[19] | Craig Buckler. Sitepoint (JavaScript) - Understanding ES6 Modules. https://www.sitepoint.com/understanding-es6-modules/, Legutóbb megtekintve: 2019. április 22. |