Stringek, számok és tömbök mint objektumok: mezők, jellemzők, metódusok.
String
A String (mint globális objektum) egy konstruktor karaktersorozatok számára. A sztringek literál és objektum formában lehetnek jelen a JavaScriptben. A JavaScriptben a String literálokra ugyanazokat a metódusokat használhatjuk, mint a String objektum megfelelőikre. A két forma közti különbség az, hogy az előbbihez nem lehet új tulajdonságokat rendelni. Ennek oka, hogy a rajtuk végzett tetszőleges művelet során valójában létrejön ideiglenesen egy String objektum, melynek tartalma megegyezik a literáléval. Magukon a String objektumokon sem végezhető módosítás, ehelyett a műveletek egy teljesen új és módosított objektumot adnak vissza.
var string_literal = 'karakterlanc';
var string_ojektum = new String(string_literal);
console.log(typeof string_literal);
// string
console.log(typeof string_ojektum);
// object
Vegyük az alábbi sztringet: 'kutya'. Írjon egy olyan kódot, ami azzal a számmal tér vissza, ahol először előfordul az 'o' sztring literál!
| Tulajdonság | Leírás |
|---|---|
| String.prototype.length | Visszatér a string hosszával |
| String.prototype.constructor | Visszatér a string konstruktor függvényével |
| Metódus | Leírás |
|---|---|
| String.prototype.indexOf() | Visszatér a String példány azon indexével, ahol először előfordul (kezdődik) az argumentumba írt string |
| String.prototype.lastIndexOf() | Visszatér a String példány azon indexével, ahol utoljára fordul elő (kezdődik) az argumentumba írt string |
| String.prototype.search() | Visszatér a String példány azon indexével, ahol előfordul (kezdődik) az argumentumba írt string (vagy reguláris kifejezés) |
| String.prototype.slice(kezdopont,vegpont) | Visszatér azon stringgel, ami az eredeti String példány kezdő és végpont indexe közé esik |
| String.prototype.substring(kezdopont,vegpont) | Visszatér azon stringgel, ami az eredeti String példány kezdő és végpont indexe közé esik viszont negatív indexet nem fogad el |
| String.prototype.substr(kezdopont,hossz) | Visszatér azon stringgel, ami az eredeti String példány kezdő és végpont (mint hossz) indexe közé esik |
| String.prototype.split(elvalasztostring) | Visszatér egy tömbbel, melynek elemei az elválasztóstring közti alstringjei az eredeti String példánynak |
| String.prototype.replace(ezt,erre) | Az adott String példánynál lecseréli az első paraméterbe írt értéket a másikba írt értékre, és elfogad reguláris kifejezéseket is |
| String.prototype.toUpperCase() | Lecseréli a String példány összes karakterét nagybetűre |
| String.prototype.toLowerCase() | Lecseréli a String példány összes karakterét kisbetűre |
| String.prototype.toLowerCase() | Lecseréli a String példány összes karakterét kisbetűre |
| String.prototype.concat(osszekotostring,masikstring) | Az adott String példány összeköti a második paraméterbe írt stringgel az első paraméterbe írt string elválasztással |
| String.prototype.trim() | Kitörli a String példány előforduló összes whitespace-t |
| String.prototype.charAt(szam) | Visszatér a String példány adott indexéhez (szám) tartozó karakterével |
| String.prototype.charCodeAt(szam) | Visszatér a String példány adott indexéhez (szám) tartozó UTF-16 karakterével |
Number
A Number (mint globális objektum) egy konstruktor a a számok ábrázolására. A számok literál és objektum formában lehetnek jelen a JavaScriptben. A JavaScriptben a Number literálokra ugyanazokat a metódusokat használhatjuk, mint a Number objektum megfelelőikre. A két forma közti különbség az, hogy az előbbihez nem lehet új tulajdonságokat rendelni. Ennek oka, hogy a rajtuk végzett tetszőleges művelet során valójában létrejön ideiglenesen egy Number objektum, melynek tartalma megegyezik a Number literáléval. Magukon a Number objektumokon sem végezhető módosítás, ehelyett a műveletek egy teljesen új és módosított objektumot adnak vissza.
var szam1 = new Number('123');
console.log(szam1 === 123);
// false
var szam2 = Number('123');
// ez globális metódus, nincs köze a Number példányhoz
console.log(szam2 === 123);
// true
console.log(szam1 instanceof Number);
// true
console.log(szam2 instanceof Number);
// false
Vegyük egy szám literált (például 1613). Írjon egy olyan kódot, aminek a segítségével a megadott számot átalakíthatjuk Number objektummá (azaz a típusa legyen object)!
| Tulajdonság | Leírás |
|---|---|
| Numberq.prototype.MAX_VALUE | Visszatér a lehető legnagyobb számmal, ami értelmezve van |
| Number.prototype.MIN_VALUE | Visszatér a lehető legkisebb számmal, ami értelmezve van |
| Number.prototype.POSITIVE_INFINITY | Visszatér egy pozitív végtelennel |
| Number.prototype.NEGATIVE_INFINITY | Visszatér egy negatív végtelennel |
| Number.prototype.NaN | Visszatér a NAN értékkel |
| Number.prototype.constructor | Visszatér a Number példány konstruktor függvényével |
| Metódus | Leírás |
|---|---|
| Number.prototype.toString() | Visszatér a Number példánnyal, mint string adattípus |
| Number.prototype.toExponential(kitevo) | Visszatér a Number példány kitevo-edik hatványával |
| Number.prototype.toFixed(szamkerekit) | Visszatér a szamkerekit tizedesjegyre kerekített számmal |
| Number.prototype.toPrecision(szamlevag) | Visszatér a szamlevag tizedesjegyik levágott számmal |
| Number.prototype.valueOf() | Visszatér a Number példány értékével |
Array
Az Array egy olyan adatstruktúra, ami több értéket tartalmazhat és elemei számozással indexelődnek. Egy érték többször is szerepelhet és számít a sorrend. A tömb elemei számozással indexelődnek. A kezdő index a 0, az utolsó pedig a tömb hossza-1. A tömb neve után []-be írva a tömb egy tetszés szerinti indexét, visszatér a hozzá rendelt elem értékével. Sok helyen önálló adattípusnak tekintik, viszont a typeof operátor "object"-et ír ki. A new kulcsszó használata kerülendő, számos nem várt következményekkel jár a használata, főleg kezdő programozók számára.
var tomb1 = [1, 2, 3];
var tomb2 = new Array(1, 2, 3);
console.log(typeof tomb1);
// object
console.log(typeof tomb2);
// object
console.log(tomb1 instanceof Array);
// true
console.log(tomb2 instanceof Array);
// true
var tomb3 = new Array(30, 40);
// Egy olyan tömböt definiál, melynek elemei 1 és 2
var tomb4 = new Array(30);
// Egy olyan tömböt definiál, melynek hossza 30 és minden egyes eleme undefined
var szemely = [];
person[0] = "Jakab";
person[1] = "Elemér";
person[2] = 64;
console.log(person[0]);
// Jakab
Számos programozási nyelv támogatja a tömb elemek név-szerinti Indexelést. Ezeket a tömböket asszociatív tömböknek hívjuk. A JavaScript ezt a lehetőséget nem támogatja, a tömb elemeinek indexelése csak számmal történhet. Különben a tömb újradefiniálódna standard objektummá. Ezt követően néhány tömb metódus alkalmazása hibákat dobhat ki.
var szemely = [];
person["keresztnev"] = "Jakab";
person["vezeteknev"] = "Elemér";
person["ev"] = 64;
console.log(person[0]);
// undefined
Vegyük az alábbi három tömböt: ["Volvo", "BMW", "Saab"]. Írjon egy olyan kódot, aminek a segítségével kiválaszthatjuk a tömb második elemét! A kódban szerepeljen a megadott tömb!
| Tulajdonság | Leírás |
|---|---|
| Array.prototype.length | Visszatér az Array példányhosszával |
| Array.prototype.constructor | Visszatér az Array példány konstruktor függvényével |
| Metódus | Leírás |
|---|---|
| Array.prototype.toString() | Visszatér az Array példány egyetlen stringgé konvenrált elemeivel |
| Array.prototype.pop() | Kitörli az Array példány utolsó elemét |
| Array.prototype.push() | Új elemet szúr be az Array példány végére |
| Array.prototype.shift() | Kitörli az Array példány első elemét |
| Array.prototype.unshift() | Új elemet szúr be az Array példány elejére |
| Array.prototype.tomb[index] = valami | A tomb nevű Array példány index-edik eleméhez rendelődik a valami string érték |
| Array.prototype.splice() | Visszatér az eredeti Array példány módosított változatával (elemet lehet hozzáadni, vagy kitörölni) |
| Array.prototype.concat() | Visszatér egy dublikált elemekkel rendelkező két (vagy több) tömbből összefűzött tömböt |
| Array.prototype.slice() | Visszatér az eredeti Array példány elemeiből képzett altömbbel (kezdőpont és végpont indexeket felhasználva) |
| Array.prototype.sort(fuggveny) | Visszatér az eredeti Array példány valamilyen függvény szerint rendezett formájával |
| Array.prototype.forEach() | Végigiterál az Array példány összes elemén |
| Array.prototype.forEach() | Végigiterál az Array példány összes elemén |
| Array.prototype.map(fuggveny) | Az eredeti Array példány tartalmát módosítja valamilyen függvény szerint |
| Array.prototype.filter(fuggveny) | Visszatér az eredeti Array példány elemeiből képzett altömbbel valamilyen függvény szerint |
| Array.prototype.reduce(fuggveny) | Az eredeti Array példányon végigfut és visszatér egy értékkel aszerint, hogy milyen függvényt definiáltunk a metódus argumentumában |
| Array.prototype.indexOf(elem) | Visszatér az Array példány első azon elemének indexével, amelynek értéke megegyezik a metódus argumentumába írt paraméter értékével |
| Array.prototype.lastIndexOf(elem) | Visszatér az Array példány utolsó azon elemének indexével, amelynek értéke megegyezik a metódus argumentumába írt paraméter értékével |
| Array.prototype.find(fuggveny) | Visszatér az Array példány első azon elemével, ami teljesít azon feltételt, amit az argumentumba írt függvény definiál |
| Array.prototype.findIndex(fuggveny) | Visszatér az Array példány első azon elemének indexével, ami teljesít azon feltételt, amit az argumentumba írt függvény definiál |
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. |