1. előadás
Előzmények
Webfejlesztés tárgy: HTML, CSS
Kliens-szerver architektúra
- Webes architektúra = Kliens-szerver kommunikációja
- HTTP: a kommunikáció protokolja
- URL: erőforrások azonosítója
Oldalak
Statikus oldalak
- Szerver szempontjából: A kérés pillanatában a kért tartalom már létezik a szerveren (fájl kiszolgálás)
- Kliens szempontjából: Nem fut le benne programkód
Dinamikus oldalak
- Szerver szempontjából: A kérés pillanatában a válasz még nem létezik a szerveren
- Kliens szempontjából: Programkód fut le, ez megváltoztatja a böngésző állapotát és a dokumentum szerkezetét
Miről lesz szó a tárgyon?
- Platformspecifikus programozás
- Dinamikus webprogramozás
- Kliensoldalon: JavaScript
- Szerveroldalon: PHP
Kliens oldali webprogramozás: JavaScript
- Fejlesztő környezet: VS Code
- Fejlesztési eszközök a böngészőben: (vizsgálat -> ) console és társai
- Dokumentáció
- Futtatási környzete: bönglsző
- Van már parancssori is:
Node.js
- Van már parancssori is:
Hova írhatjuk a kódot?
- Böngésző konzol: kipróbálásra jó
- HTML kódba
- Inline script:
scripttaggel HTML-en belül (spagetti) - Külső állomány:
scriptsrc attribútuma (ezt preferáljuk)
- Inline script:
Jellemzők
(Zárójeles megjegyzés: van egy típusos kiegészítése a nyelvnek: TypeScript)
- Dinamikus típusozás (a típusok az értékekhez tartoznak)
- Szkriptnyelv
-
Interpretált (nincs fordítás, hibáig fut)
-
Case sensitive
- Nem kötelező kirakni a végére
;-t - Objektumorientált
- Nincs főprogram (main)
- Input, output, fájlkezelés: csak API-n keresztül
Típusok
- Primitív értékek:
nullundefined
- Egyszerű típusok:
booleannumberstring
- Összetett típusok:
objectarrayfunction
Változók
let,constkulcsszóval deklarálunk változót- ezek nélkül: globális változó
- Ha nincs kezdő érték:
undefined
Operátorok
- C, C++, C# jellegű
- Egyenlőség vizsgálat:
==: érték szerinti egyenlőség===: típus és érték szerinti egyenlőség (ezt ajánlott használni)
Vezérlési szerkezetek
Lásd: gyak jegyzet
Függvények
Létrehozási formák
// function declaration
function add(a, b) {
return a + b;
}
// function expression
const add = function (a, b) {
return a + b;
}
// fat arrow
const add = (a, b) => {
return a + b;
}
const add = (a, b) => a + b;
Tömb
Literálforma: []
// létrehozás
const tomb = [12, 'alma', true];
// referencia
tomb[0]; // => 12
// hossz
tomb.length; // => 3
// új elem
tomb.push(e);
// törlés (marad a méret)
delete tomb[1];
// indexe (keresés)
tomb.indexOf(elem)
// eldöntés
tomb.includes(elem)
// szöveget csinál a tömbből
tomb.join()
Mátrix = tömbök tömbje
Tömbfüggvények
A programozási tételek meg vannak csinálva és be vannak építve a nyelvbe. (Magasabbrendűként használva.)
forEach: általános ciklussome: eldöntésevery: optimista eldöntésmap: másolásfilter: kiválogatásreduce: összegzés (sorozatszámítás)find: keresés (elem)findIndex: keresés (index)
Objektum
Kulcs-érték párok gyűjteménye
Literálforma: { }