You are on page 1of 16

Állásinterjú kérdések – JavaScript

Mi a JavaScript?
Kliens oldali script nyelv, nem típusos, objketum-orientált, interpreteres nyelt, melyet a HTML oldalak
viselkedésénekmeghatározására használnak. Csak böngészőben futtatható.

Milyen adattípusokat támogat a JavaScript?

Mit jelent a NaN?


Mikor kapunk undefined értéket?
Alapértelmezetten a változók ezt az értéket kapják (var). inicializáláskor íródik át az értékük.

Mi a különbség a null és az undefined között?


Az undefined azt jelenti, hogy a változó még nem kapott értéket vagy nem is lett definiálva. A  null azt
jelenti, hogy a változó létezik, és a fejlesztő szándékosan jelezni akarja, hogy a változónak nincsen
értéke.

Mit jelent a cím szerinti és az érték szerinti paraméter átadás? Mely típusokat adunk át
cím szerint, és mikor jelentkezett ez a tanulmányaid során?
A primitív típusok (number, string, boolean, undefined, null) érték szerint, az objektumok (azaz
minden más) pedig referencia szerint.

Milyen hátrányai vannak a JS-nek?


 Az ügyféloldali JS nem engedélyezi a felhasználók számára, hogy fájlokat írjanak vagy
olvassanak. Ezt az irányelvet bizonyos biztonsági aggályok miatt hozták létre.
 A JS -t néha többféleképpen is lefordíthatja több böngésző. Míg a szerveroldali JS állandóan
ugyanazt az eredményt kínálja, az ügyféloldali szkriptnyelv időnként kissé eltérhet.
 A JavaScript nem alkalmazható hálózati alkalmazásokra, mivel nem nyújt támogatást az ilyen
alkalmazásokhoz.
 A JavaScript nem tartalmaz többprocesszoros elemeket, helyette asszinkron hívások vannak.

Milyen névadási szabályok vannak a JS-ben?


kisbetű, nagybetű különböző

 camelCase
 const – nagybetűs
 let, var – kisbetű
 osztálynevek nagybetűvel kezdődnek
 osztály példányok csupa kisbetűsek.
 számmal nem kezdődhet változónév,
Mi a hatókör?
A JavaScript nyelvben, és általában a programozásban hatókörnek (angolul scope-nak) nevezzük a
programvégrehajtás aktuális kontextusát. Ez lesz az a környezet, ahonnan a szóban forgó változó vagy
függvény "látható" lesz, ahonnan elérjük az értékét.

A scope-ok hierarchikus rendszerbe rangsorolhatók: a gyermek scope-ok hozzáférnek a szülő scope-


okhoz, de fordítva nem.

Globális hatókör: Az a hatókör, ami minden más hatókört tartalmaz, minden más hatókörből látható.

Lokális hatókör: Egy függvényen, vagy blokkon belül látható változók. JavaScriptben a lokális hatókör
BLOKK – on belül is értelmezhető!

A globális és a függvény szintű változók a var kulcsszóval hozhatók létre.

Blokk szintű változók {}: let, vagy const.

Mi lesz a és b értéke a 7. sorban?


mik a lokális és mik a globális változók?

Mondj példát blokk szintű változó használatára!


A let-tel deklarált index változó csak a for cikluson belül látszik, utána nem!

Ha lettel deklaráljuk az i ciklusváltozót, akkor a ciklus minden iterációban új kötést hoz létre i-nek. Ez
azt jelenti, hogy i minden körben egy teljesen új változó lesz, különböző az előző kör i-jétől.
Milyen változókat tudunk elérni egy függvény belsejéből?
A függvény belsejében definiált változókat, a függvényt magában foglaló szülő függvényekben
definiált változókat, és a globális hatókörben definiált globális változókat.

VAR LET CONST


újradeklarálható a változó, de nem deklarárlható újra mindig értéket kell adni, nem
hibákhoz vezet! megváltoztatható később.

Globális hatókörű Globális hatókörű Globális hatókörű


Függvény hatókörű Függvény hatókörű Függvény hatókörű
Blokk szintű hatókör is Blokk szintű hatókör is
lehetséges lehetséges

A CONST
constot akkor is használhatunk, ha a definiált változónk értéke tömb vagy objektum lesz. Ilyenkor
viszont az objektumunk, tömbünk tartalmára nem terjed ki a szigorú változtatás elleni védelem. Az
objektum kulcsait, a tömb elemeit akkor is büntetlenül változtathatjuk, ha consttal definiált
változóban vannak.

A const nem megváltoztathatatlan értékű változókat csinál, hanem megváltoztathatatlan kötést hoz
létre egy változónév és egy érték között. Egy olyan összetett adatstruktúránál, mint egy tömb, vagy
egy objektum, az érték, amihez a megváltoztathatatlan kötés létrejön egy referencia, egy mutató a
tömbödre vagy az objektumodra. Ez a mutató az, ami nem változhat meg, és nem az
adatstruktúrádban tárolt értékek.

Ha constot használunk az összetett adatstruktúráink, tömbjeink és objektumaink tárolására, az


megvéd az ilyen véletlen felülírásoktól, és rákényszerít minket, hogy ennél sokkal óvatosabban,
egyesével nyúljunk csak az objektumok kulcsaihoz, vagy a tömbök elemeihez.

Mit jelent a hoisting?


A változók felemelése, vagyis a hoisting az a JavaScript mechanizmus, ahol a változók úgy viselkednek,
mintha a scope-juk, a hatókörük elejére mozognának a kód végrehajtásakor.
Mi a különbség a var és a let között hoisting szempontból? Mi lesz a 15. sorban x és y
értéke ha a 16, 17. sorban var-t írok? És ha let-et?

Tömbök és objektumok esetében hogy működik a let és a const?

Milyen elvárások vannak egy programmal szemben?


 Újrafelhasználható kód
 Könnyen továbbfejleszthető legyen
 Jól karbantartható legyen
 Jól ellenőrizhető/tesztelhető legyen

Mit értünk objektum orientált program alatt?


Egy objektum-orientált stílusban megírt programot egymással kommunikáló objektumok összességét
értjük. A program legkisebb eleme az objektum, melyek egymás metódusait hívják, „beszélgetnek”
egymással.

Melyek az OOP elvei? Milyen elvárások vannak az OOP programmal szemben?


 Egységbezárás – az egyazon tervrajzhoz/modellhez/sablonhoz tartozó adatokat és a rajtuk
végzendő műveleteket egységként kezeljük
 Adatrejtés – az adatokat csak ellenőrzött körülmények között érhetjük el, vagy végezhetünk
műveleteket.
 Öröklődés – az osztályok között értelmezett kapcsolat, ha az „az egy ..” kapcsolat fennáll,
akkor kell öröklődést alkalmazni (a tanár az egy ember…).
 Polimorfizmus – az öröklődésnél kap szerepet – egy objektum többféle lehet (lehet kutya,
macska, de lehet állat is )

Mi az osztály?
 Az osztály egy tervrajz, ami alapján elkészülnek a példányosításkor a konkrét egyed-
előfordulások. Az objektum ebben a megközelítésben a tervrajz alapján konstruált szerkezet
(konstruktor)
 Az osztály egy modell, amellyel a valódi világ valamilyen elemének a rá jellemző
tulajdonságait és viselkedését jellemezzük. Példányosításkor létrejön a konkrét egyed, azaz az
objektum a konkrét tulajdonság értékekkel.
 Az osztály egy új típus. Egyrészt meghatározzuk, hogy miket tudunk benne tárolni, (adattag)
de azt is megmondhatjuk, hogy milyen műveleteket tudunk majd végezni ezeken az adatokon
(tagfüggvény).

Mi az objektum és hogy jön létre?

 Az osztály egy példánya.


 A tervrajz alapján készült konkrét egyed.
 Az osztályból a példányosítás során jön létre. Let objektumnev= new Osztalynev()

Mi a konstruktor?

 Az osztály egy speciális függvénye, ez fut le, amikor példányosítjuk az osztály.


 Felépíti az osztályból a példányt.
 Beállítja az adattagokat. (inicializálja az új objektumot)

Az alábbi kódban milyen jellegűek az adattagok láthatóság szempontjából?

Mi a típusa az alábbi változóknak?

orszag
#orszag
#terulet

Hogy érhetjük el ausztralia ország és terület adatait jelen pillanatban?


Melyik adattagot érhetjük el az osztályon kívülről?

Mi a típusa az ORSZAGOK változónak?


Mi a típusa az orszag változónak?
Mi a típusa az ORSZAGOK[i] változónak?
Mi a típusa az ORSZAGOK[i].terulet változónak?
Olvass le minél több információt az alábbi ábráról!

Mi a különbség Javascript-ben a nyíl függvény és a function névtelen függvény


között?
Mit jelent a this?

Hogyan működik az öröklődés JavaScriptben?


Az öröklődés a JavaScriptben a prototípus alapú öröklődésre épül. Ez azt jelenti, hogy minden
objektum rendelkezik egy prototípussal, amelynek tulajdonságai és módszerei öröklődnek az
objektumokból, amelyek ezt a prototípust használják.

Az öröklődési lánc a következő módon működik:

1. Az öröklődési lánc tetején van az Object.prototype objektum, amely rendelkezik a JavaScript


alapértelmezett tulajdonságaival és módszereivel. Ez az objektum az öröklődési lánc gyökere.
2. Amikor létrehozunk egy új objektumot, az új objektum rendelkezik egy prototípussal, amely
alapértelmezés szerint a Object.prototype objektumra mutat. Az objektum létrehozása során
megadhatjuk a prototípus objektumot, amelyre az új objektum hivatkozik.
3. Amikor egy objektum tulajdonságára vagy módszerére hivatkozunk, a JavaScript a prototípus
láncot követi, és az örökölt tulajdonságokat és módszereket keresheti. Ha az örökölt
tulajdonságot vagy módszert nem találjuk meg az aktuális objektumban, akkor a prototípus
láncot felfelé követve tovább keresi.
4. Amikor megtaláljuk az örökölt tulajdonságot vagy módszert, akkor azt az objektumot
használjuk, amelyikben az örökölt tulajdonság vagy módszer megtalálható.

Az öröklődés JavaScriptben dinamikus. Ez azt jelenti, hogy amikor egy objektum prototípusára
mutató hivatkozást változtatunk, az öröklődési lánc változik, és az összes örökölt tulajdonság és
módszer is megváltozik.

Továbbá JS-ben futásidőben is változhat az objektum, ezért a belőle öröklődött tulajdonságok is.

Mit jelent a RestFull alkalamazás?


A rest egy protokollfüggetlen webes szolgáltatások tervezésére szolgáló architekturális módszer.
Melyek a http protokollt használó RestFull Apik tervezési elvei?
I. A REST API-k erőforrások köré vannak szervezve. Az erőforrások olyan objektumok, adatok
vagy szolgáltatások, amelyek az ügyfél által elérhetők. (PL adatbázis rekordjai)
II. Minden erőforrás rendelkezik egy azonosítóval. Ez az URI, amely egyedileg azonosítja az adott
erőforrást. 
III. Az ügyfelek az erőforrások reprezentációinak cseréje révén lépnek interakcióba a
szolgáltatásokkal. Számos webes API a JSON-t használja csereformátumként. Például, ha a
fent említett URI-ra egy GET-kérés érkezik, akkor a rendszer a következő válaszüzenetet
adhatja vissza:
JSON {"orderId":1,"orderValue":99.90,"productId":1,"quantity":1}
IV. A REST API-k egységes felületet használnak, amely segít az ügyfél és a szolgáltatás
implementálásának különválasztásában. A HTTP-n alapuló REST API-k esetében az egységes
felület szabványos HTTP-műveletek használatával végez műveleteket az erőforrásokon. A
leggyakoribb műveletek a következők:
1. GET
2. POST
3. DELETE
4. PUT
5. PATCH

A REST API-k állapot nélküli kérésmodellt használnak. A HTTP-kéréseknek függetlennek kell lenniük,
és bármilyen sorrendben előfordulhatnak, ezért nem valósítható meg az átmeneti állapotadatok
kérések közötti megőrzése. Az információt egyedül maguk az erőforrások tárolják, és minden kérésnek
atomi műveletnek kell lennie.

Melyek a RESTful webes API-k által használt gyakoribb HTTP-metódusok?

1. GET: lekéri az erőforrás reprezentációját a megadott URI-n keresztül. A válaszüzenet törzse


tartalmazza a kért erőforrás részleteit.
2. POST: egy új erőforrást hoz létre a megadott URI-n. A kérésüzenet törzse tartalmazza az új
erőforrás részleteit. 
3. DELETE: eltávolítja az erőforrást a megadott URI-n.
4. PUT: A megadott URI-n létrehoz egy új erőforrást, vagy cseréli a meglévőt. A kérésüzenet
törzse meghatározza a létrehozni vagy frissíteni kívánt erőforrást.
5. PATCH: egy erőforrás részleges frissítését hajtja végre. A kérés törzse megadja az erőforrásra
alkalmazni kívánt módosításokat.

Mit jelent a callback függvény?


 Egy másik függvény paramétereként átadott függvény,
 melynek asszinkron hívások esetén van szerepe

Hogy épül fel egy JSON szerkezetű adathalmaz?


Mesélj a kódról!
Mit ír ki a konzolra a program és miért?

You might also like