1. blokk · Alapok · 1. fejezet
A JavaScript ma már nem csak a böngészőben él: Node.js-szel szervereket, parancssori eszközöket
és API-kat írunk vele. Ebben a fejezetben megnézzük, mi a JavaScript, hol fut, hogyan indítunk el egy fájlt
Node-dal, és megírjuk az első sorainkat a console.log-gal — végig kipróbálhatóan,
az oldalba épített gyakorlóban.
.js fájlt, és lefuttatod a terminálból: node hello.js.console.log-ot több értékkel, számmal és szöveggel, és tudod, mire jó a console.error.A JavaScript (röviden JS) egy programozási nyelv, amelyet 1995-ben a Netscape böngészőhöz készítettek, hogy a weboldalak „éljenek": reagáljanak a kattintásra, ellenőrizzék az űrlapokat. Azóta a világ legelterjedtebb nyelve lett — és 2009-től, a Node.js megjelenésével a böngészőn kívül, szerveren is fut.
let/const, nyílfüggvények, template literálok, osztályok, modulok. Azóta évente jön egy új változat (ES2016, ES2017, …), ezért mondjuk röviden: „ES6+" — ezt tanuljuk.Ugyanaz a nyelv fut a böngészőben és a szerveren — egy webfejlesztőnek elég egyet jól tudnia. A Node.js gyors, hatalmas a csomagkínálata (npm), és az Express keretrendszerrel néhány sorban áll egy webszerver. Ez a kurzus arra készít fel.
A JavaScript-kódot mindig egy JavaScript-motor hajtja végre. A Chrome böngésző motorja a V8 — és pontosan ez a V8 dolgozik a Node.js belsejében is. A nyelv tehát ugyanaz, a környezet viszont más: a böngésző a weboldalhoz ad eszközöket, a Node a géphez és a hálózathoz.
| Böngésző | Node.js | |
|---|---|---|
| Motor | V8 (Chrome), SpiderMonkey (Firefox), JavaScriptCore (Safari) | V8 |
| Mire való | Weboldal viselkedése a felhasználó gépén | Szerver, API, parancssori eszközök, build-szkriptek |
| Amit csak itt tudsz | DOM (az oldal elemei), window, document, események, alert | Fájlrendszer (fs), hálózat (http), folyamatok, környezeti változók, npm-csomagok |
| Hogyan indul | A HTML-oldal <script> eleme tölti be | Terminálból: node fajl.js |
| Hol látod a kimenetet | A fejlesztői eszközök konzolján (F12) | A terminálban |
| Közös | A nyelv maga: változók, típusok, operátorok, függvények, tömbök, objektumok, osztályok, console.log, Math, JSON… | |
Ebben a kurzusban kizárólag a közös részt tanuljuk — azt, ami Node-ban is ugyanúgy működik. Nem lesz DOM,
nem lesz alert: minden kimenet a console.log-on keresztül megy.
A backend-kurzuson minden program így indul: node index.js. Az index.js fájlban
ugyanolyan JavaScript áll, amilyet itt írsz — csak később ott betöltjük az Express-t, és a program nem áll le a végén,
hanem vár a HTTP-kérésekre. Amit itt begyakorolsz, azt egy az egyben viszed magaddal.
Először ellenőrizd, hogy telepítve van-e a Node. Nyiss egy terminált (Windows: PowerShell vagy a VS Code beépített terminálja), és írd be:
$ node --version
v22.11.0
Ha verziószámot kapsz (bármilyen 18-as vagy újabb jó), minden rendben. Ha „ismeretlen parancs" hibát, telepítsd a nodejs.org-ról az LTS változatot.
Hozz létre egy mappát a gyakorláshoz, benne egy hello.js nevű fájlt (bármilyen szövegszerkesztő jó, de a
VS Code ajánlott). A fájl tartalma egyetlen sor:
console.log("Helló, Node!");
Aztán a terminálban — abban a mappában, ahol a fájl van — futtasd:
$ node hello.js
Helló, Node!
Ennyi. A node parancs beolvassa a fájlt, a V8 végrehajtja, a console.log pedig a
terminálba ír. Amikor a program végére ér, a Node kilép, és visszakapod a promptot.
| Parancs | Mit csinál |
|---|---|
node --version | Kiírja a telepített Node verzióját |
node hello.js | Lefuttatja a hello.js fájlt |
node | Interaktív módot (REPL) indít: soronként írhatsz kódot, Ctrl+D vagy .exit a kilépés |
| Ctrl+C | Leállít egy futó programot (pl. ha beragadt) |
A node hello.js a jelenlegi mappában keresi a fájlt. Ha „Cannot find module" hibát kapsz, nem abban a
mappában állsz, ahol a fájl van — lépj oda a cd paranccsal. VS Code-ban a beépített terminál
(Ctrl+ö) automatikusan a megnyitott mappában indul.
A console.log() a legfontosabb eszközöd a kurzus végéig: kiírja a zárójelbe tett érték(ek)et.
Node-ban a terminálban jelenik meg, a böngészőben a konzolon — itt, a gyakorlóban pedig a kód alatti dobozban.
console.log("Helló, Node!"); // szöveg — idézőjelek között írjuk console.log(42); // szám — idézőjel nélkül console.log(7 * 8); // 56 — a gép kiszámolja, az eredményt írja ki console.log("7 * 8"); // 7 * 8 — ez szöveg, úgy jelenik meg, ahogy írtad
Vesszővel több értéket is átadhatsz. A console.log ezeket egy szóközzel elválasztva, egy sorba írja —
ez a legkényelmesebb módja annak, hogy egy feliratot és egy értéket együtt mutass:
console.log("Eredmény:", 6 * 7); // Eredmény: 42 console.log("Ár:", 6990, "Ft"); // Ár: 6990 Ft console.log(12, "+", 5, "=", 12 + 5); // 12 + 5 = 17
A 42 egy szám, a "42" egy szöveg, amelyben véletlenül számjegyek vannak.
Kiírva egyformán néznek ki, de a + jel másképp bánik velük: számokat összead, szövegeket összefűz.
A részleteket a 2. fejezet tárgyalja, de a jelenséget már most figyeld meg:
console.log(5 + 3); // 8 console.log("5" + "3"); // 53 console.log("Szám: " + 7 + 1); // Szám: 71 — balról jobbra: szöveg + 7 → szöveg, + 1 → hozzáfűzés
A console.error() ugyanúgy kiír, de a hibacsatornára (stderr). Terminálban ez általában
ugyanott jelenik meg, de a rendszer meg tudja különböztetni a normál kimenettől — pl. külön naplófájlba irányítható.
Hibaüzenetekhez ezt használd; a gyakorló piros színnel jelöli.
console.log("Rendelés feldolgozva"); console.error("Hiba: nincs elég készlet");
A komment (megjegyzés) olyan szöveg a kódban, amit a gép figyelmen kívül hagy — nekünk, embereknek szól. Kétféle van:
// Egysoros komment: a // jeltől a sor végéig tart console.log("fut"); // a sor végén is állhat /* Többsoros komment: több soron át tart, amíg le nem zárjuk */ // console.log("ez nem fut le"); — kikommentelt kód: átmenetileg kikapcsolva
A kód utasításokból áll — egy utasítás egy „tedd ezt" lépés, pl. egy console.log hívás.
Az utasításokat pontosvesszővel (;) zárjuk, és szokás soronként egyet írni. A JavaScript sokszor
elnézi a hiányzó pontosvesszőt, de vannak alattomos kivételek — ezért ebben a kurzusban mindig kitesszük.
Írd le, miért csinálsz valamit, ne azt, mit — a „mit" a kódból látszik. Hibakeresésnél pedig kommentelj ki sorokat, hogy lásd, melyik okozza a problémát. VS Code-ban Ctrl+/ kommentbe teszi / kiveszi a kijelölt sorokat.
Hibázni fogsz — mindenki hibázik, sokszor. A különbség az, hogy a tapasztalt fejlesztő elolvassa a hibaüzenetet,
és abból megtalálja a bajt. A Node ilyet ír, ha pl. elgépelted a console szót:
$ node hello.js /projekt/hello.js:2 consle.log("Helló"); ^ ReferenceError: consle is not defined at Object.<anonymous> (/projekt/hello.js:2:1)
Így olvasd, fentről lefelé:
hello.js:2 — a hiba a 2. sorban van. Ez a legfontosabb információ: ugorj oda!^ jel — pontosan mutatja, hol akadt el.ReferenceError: consle is not defined — „a consle névre hivatkozol, de ilyen nem létezik".at … sorok a hívási lánc — kezdőként az első sora érdekes, a többit átugorhatod.| Hiba típusa | Mit jelent | Tipikus ok |
|---|---|---|
SyntaxError | A kód „nyelvtanilag" hibás — a Node el sem tudta kezdeni futtatni | Hiányzó zárójel vagy idézőjel: console.log("Helló); → Invalid or unexpected token |
ReferenceError | Olyan névre hivatkozol, amely nem létezik | Elgépelés (consol), vagy kis-/nagybetű eltérés (Console.log) |
TypeError | Egy értékkel olyat próbálsz, amit az nem tud | console.lg("x") → console.lg is not a function |
A JavaScript megkülönbözteti: console.log jó, Console.log és console.Log
hibás. A kulcsszavak és a beépített nevek mind kisbetűsek.
Ezen az oldalon (és a következő fejezetekben) egy beépített gyakorló fut: beírod a kódot, megnyomod a
Futtatás gombot (vagy Ctrl+Enter), és alatta megjelenik a console.log kimenete —
pontosan úgy, ahogy a terminálban látnád a node fajl.js után. A hibaüzeneteket is ugyanúgy mutatja.
.js fájlba, és futtathatod node-dal.A feladatok ellenőrzője a kimenetet soronként hasonlítja össze. Minden kiírt sorhoz külön console.log hívást írj;
a sorvégi szóköz nem számít, de a többi karakternek (vessző, pont, kis-/nagybetű) pontosan egyeznie kell.
Itt valódi JavaScriptet futtathatsz. Válassz egy mintát a chipek közül, nyomd meg a Futtatás gombot, és nézd meg a kimenetet. Írd át a szövegeket és a számokat — figyeld, mi változik. Próbáld ki a „Nézd a hibát!" mintát is!
Válassz mintát vagy írj sajátot — majd Futtatás (Ctrl+Enter) ↓
Az első feladatok csak console.log-ot, szövegeket és számolást kérnek — saját változót még nem kell
létrehoznod. Néhány feladatban adott változók szerepelnek (pl. nev, ar):
ezeket a gyakorló hozza létre a kódod előtt, te csak használod őket a nevükkel. Az Ellenőrzés több
értékkel is lefuttatja a kódod.
⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás — a haladásod ebben a böngészőben megmarad.
Nézd meg a piros sort: mit vártunk és mit kaptunk. A leggyakoribb okok: hiányzó vagy plusz szóköz, más írásjel, kis-/nagybetű eltérés, vagy a szám helyett a kifejezés szövegét írtad idézőjelbe. Ha elakadsz, a Tipp segít, végső esetben a Megoldás — de előbb próbáld meg magad!
window) és a Node.js-ben (fájlrendszer, hálózat, szerver) — mindkettő alatt a V8 motor dolgozik. Mi a közös részt tanuljuk.node --version ellenőrzi a telepítést, node hello.js lefuttat egy fájlt. A kimenet a terminálban jelenik meg.console.log(a, b, c) több értéket szóközzel elválasztva, egy sorba ír. Szám (42) és szöveg ("42") nem ugyanaz: a + számot összead, szöveget összefűz. console.error a hibacsatornára ír.// egy sor, /* … */ több sor. Az utasításokat ; zárja — mindig kitesszük.^ → a hiba típusa (SyntaxError, ReferenceError, TypeError) és üzenete.console.log-kimenetet mutatja, mint a terminál; a feladatok soronként ellenőriznek — egy sor = egy console.log.Eddig minden értéket közvetlenül a console.log-ba írtunk. A következő fejezetben megtanulod, hogyan
tárolsz értékeket változókban (let, const), milyen
adattípusok vannak (szám, szöveg, logikai), és hogyan alakítod át egyiket a másikba — ez a webshop-példák alapja.