JavaScript

 

Mi a JavaScript?

A JavaScript egy leginkább webes céllal létrehozott interpretált nyelv, amelyet általában arra használnak, hogy interaktív effektusokat hozhassunk létre a böngészőnkben. Szintaxisa a C nyelven alapul. Egy ideje támogatja az objektumorientáltságot. 

Az interpretált nyelv az azt jelenti, hogy futás közben értelmezett, nincs szükség fordítóra. Az objektumorientáltság úgy jelenik meg benne, ahogy számos, egyéb programnyelv esetén: lehet osztályokat létrehozni, azokat származtatni egymásból.

A JavaScript nyelven nem adhatjuk meg deklaráláskor a változók típusait, illetve azoknak nincs is típusa. Az adatoknak van típusa, de a változóknak nincs, és egy változóban tárolt adat típusa változhat. Ebből kifolyólag gyengén típusos nyelv.

Használata során érdemes figyelembe venni, hogy ahogy a CSS leíró nyelv esetén, úgy ennek is vannak korlátai böngészőkompatibilitás terén. Az a kód, amit létrehozunk, az egyik böngészőben lehet, hogy kiválóan működni fog, a másikban pedig egyáltalán nem biztos.

A programnyelvhez hoztak létre különféle könyvtárakat (pl. jQuery), vagy keretrendszereket, is ilyen például az Angular, React, és Vue. Ezek abban segítenek minket, hogy könnyebben, és gyorsabban tudjuk a megfelelő eredményt elérni, valamint, hogy a létrehozott kód böngésző-kompatibilis legyen.

Mit tehetünk a JavaScript segítségével?

Mikor a weboldalunkat megnyitjuk a böngészőben, akkor létrejön az úgynevezett DOM (Document Object Model), ami a weboldalunk megjelenő tartalmát reprezentálja: például a képeket, a HTML elemeket, és a CSS kódot.

A JavaScript segítségével lehetőség nyílik arra, hogy ezeket az elemeket manipuláljuk, akár még akkor is, mikor az oldalunk már teljesen betöltött. Lehetőség van a szerverrel való kommunikációra is.  A teljesség igénye nélkül néhány a leggyakoribb alkalmazási módokra:

  • Animációkat hozzunk létre
  • Elemeket tüntessünk el, jelenítsünk meg
  • Új tartalmakat töltsünk be az oldalunkra annak újratöltése nélkül
  • Különféle űrlapok kitöltési helyességét ellenőrizzük
  • Lenyíló menüket kezeljünk
  • Különféle szövegmezők automatikus kiegészítését segítsük

Ezek közül sok megoldható valamilyen szinten CSS-el, de a teljes igény kielégítése miatt fontos a JavaScript.

Mik a JavaScript nyelv alapjai?

A JavaScript nyelv-ahogy a fenti példák mutatják-nagyon sokrétűen használható. Ahhoz, hogy a fenti feladatokat meg tudjuk valósítani, szükséges ismernünk az alapokat is a megfelelő módon. Ennek kapcsán szerettünk volna ezek közül párat összeszedni.

Hogyan, hová írhatunk JavaScript kódot?

Ahhoz, hogy JavaScript kódot tudjunk írni, szükségünk lesz egy olyan fájlra, ami támogatja ezt a scriptnyelvet. Ilyenek lehetnek például a HTML fájlok (pelda.html), JavaScript fájlok (pelda.js), PHP fájlok (valami.php).

Amennyiben kifejezetten JavaScript fájlba írjuk a tartalmat, akkor nincs szükség a tagekre, ellenkező esetben igen. A legtöbb alkalommal külső, szeparált fájlból szoktuk behivatkozni annak érdekében, hogy ne keveredjen a JavaScript, és a többi tartalom, az áttekinthetőség miatt.

Az egyszerűség kedvéért most használjunk HTML kiterjesztést. Hozzunk létre egy proba.html nevű fájlt, és ebbe írjuk bele a következő tartalmat:

Majd nyissuk meg a böngészőben, és nézzük meg, mi fog történni. 


Szintaxis

Ahogy minden nyelvnek, úgy a JavaScript nyelvnek is van egy megfelelő, és általánosságban véve használt szintaxisa, amelyet egy „szabálygyűjteményt” tartalmaz arra vonatkozólag, hogy hogyan kell a kódunkat szintaktikailag helyesen létrehozni. Mivel rengeteg ilyen szabály van, a teljesség igénye nélkül szerettünk volna párat felsorolni.

Kiíratás

Minden egyes nyelvben különféle lehetőségek vannak arra, hogy a megfelelő adatokat megmutassunk a felhasználóink részére.  Erre az alábbi lehetőségek adottak:

  1. <div id="test">
  2. </div>
  3. //.innerHTML: a kiválasztott elem HTML tartalmát módosítja.
  4. document.getElementById("test").innerHTML = 'Kiíratva';
  5. //document.write: a teljes HTML dokumentumba való kiíratás
  6. document.write('A dokumentumba kiíratva');
  7. //alert: egy felugró ablakban jelenik meg az üzenet
  8. alert('Ez az alert. Ezt már ismerjük korábbról');
  9. //console.log: a konzolra való kiíratás, ezt a fejlesztők használják hibakeresésre
  10. console.log('Itt van a konzolon');

Az utóbbi esetben nyomnjunk F12-t a Chrome böngészőnkben, és nézzük meg a console füglre kattintva fogjuk látni az üzenetet.

Kommentelés

JavaScript nyelven belül-ahogy ez általában programozási nyelvek esetén szokott lenni-a kommentelés arra való, hogy a kódunkban hagyhassunk bizonyos részeket úgy, hogy azok nem lesznek figyelembe véve a futás közben. Van lehetőség egysoros, és többsoros kommentelés létrehozására. 

Mindez abban segíthet minket, hogy a kódunkat átláthatóbbá, és mások számára könnyedén értelmezhetővé tegyük. Az egysoros kommentelést tehetjük a működő kód után is, de általában elé szoktuk a konvenciók miatt.

  1. // Így sokás az egysoros kommentet használni
  2. alert('egysoros komment');
  3. alert('egysoros komment'); // Így nem szokás az egysoros kommentet használni
  4. /*
  5. Ha szeretnénk, akkor
  6. több sorban is megtehetjük.
  7. */
  8. alert('többsoros komment');

Változók

A változók arra valók, hogy adatokat/értékeket tároljunk bennük. Ezen a nyelven belül is vannak jellemző adattípusok, ilyenek például a number, string, object, array, boolean, undefined. Az adatok típusát a typeof() kulcsszóval tudjuk ellenőrizni.

  1. // number típus. Nincs külön integer, double, vagy float. Viszont definiálhatjuk decimálisan, ha szeretnénk.
  2. var a = 5;
  3. var b = 4.54;
  4. // number, exponenciális alakban 200000
  5. var c = 2e5;
  6. // string típus
  7. var c = 'barack';
  8. var d = "körte";
  9. // Tömb típus
  10. var people = [1,2,'Jancsi'];
  11. // objektum típus (JSON objektum)
  12. var customer = {fName:"Kiss", lName:"Tamás"}; // Object
  13. // undefined típus: nem adtunk értéket. Illetve, undefined keletkezik, ha egy olyan változót szeretnénk meghívni, ami nem létezik.
  14. var not_defined;
  15. // más változók segítségével is hozhatunk létre változókat 9.54
  16. var e = a+b;
  17. // boolean típus: csak true, és false lehet. Ez esetben false.
  18. var j = a == b;
  19. // az adatok típusát a typeof() függvénnyel érhetjük el. Egy változót argumentumnak adva megadja annak típusát. Például, győződjünk meg róla, hogy az "a", és "b" véltozók numberek:
  20. console.log(typeof(a));
  21. console.log(typeof(b);
  22. // a null alapból object típustnak számít
  23. console.log(typeof(null));

Operátorok

Ahogy ez rengeteg programozási nyelv esetén igaz: itt is vannak különféle operátorok, például aritmetikai, logikai, és hozzárendelő (assignment) operátorok. Ezek közül néhány: 

  1. // assign (hozzárendelő) operátor: az x-nek az 5 értéket adjuk.
  2. var a = 5;
  3. var b = 8;
  4. var x = false;
  5. /*
  6. * Aritmetikai operátorok
  7. */
  8. // + operátor: 13
  9. var c = a + b;
  10. // - operátor: -3
  11. var d = a - b;
  12. // * operátor: 40
  13. var e = a + b;
  14. // / operátor: 0.625
  15. var f = a + b;
  16. // ++ operátor: inkrementáció 6
  17. var g = ++a;
  18. // + operátor: 4
  19. var h = --a;
  20. /*
  21. * Logaikai operátorok
  22. */
  23. // true
  24. var i = a || x;
  25. // false
  26. var j = a && x;

Iterációk

Természetesen a JavaScript nyelven belül is megtalálhatók a legjellemzőbb iterációk. Tekintve, hogy sok példát lehetne hozni ilyen téren, a for ciklust szerettük volna picit jobban bemutatni.

  1. // szimpla for ciklus
  2. for(i = 0; i < 5; i++){
  3. console.log('This number is '+i);
  4. }
  5. // tömbök esetén egy for iteráció
  6. var fruits = ["Mango", "Banana", "Apple", "Strawberry"];
  7. for (x of fruits) {
  8. document.write(x + "
  9. ");
  10. }
  11. // object propertyken egy for iteráció
  12. var animal = {name:"Horse", color:"green", age:4};
  13. var text = "";
  14. var x;
  15. for (x in animal) {
  16. text += animal[x];
  17. }
  18. console.log(text);

Függvények

A JavaScript nyelven a függvényeket a function szóval definiáljuk, ezt követi annak a neve, az argumentumokat () jelek közé rakhatjuk, a függvény érdemi, lefutó része {} jelek közé kerül. Természetesen visszatérési érték megadására is van lehetőség. Abban az esetben, ha egy függvény futása közben egy return-hoz érkezik, az nem fut tovább, és annak értékét adja vissza.

  1. // argumentum nélküli függvény
  2. function baseFunction() {
  3. alert('Ez egy alap függvény');
  4. }
  5. // a függvény meghívása
  6. baseFunction()
  7. // argumentumos függvény
  8. function withArgs(a,b){
  9. console.log(a+b);
  10. }
  11. // argumentumos függvény meghívása
  12. withArgs(2,3);
  13. // függvény returnnel
  14. function withReturn(a, b) {
  15. return a * b;
  16. // ez már nem fog lefutni, a return-nál megáll a függvény futása.
  17. alert("Üzenet")
  18. }
  19. var x = withReturn(4, 3); // Az x értéke 12 lesz, ugyanis a függvény egy számot ad vissza.

Objektumok

Sok nyelvvel ellentétben nem csupán akkor hozhatók létre objektumok, ha egy osztályt példányosítani szeretnénk. A JS objektumok név-érték (name-value) párokból állnak, ezeket nevezzük tulajdonságnak (property).

  1. var person = {fName:"Kiss", lName:"Béla", salary:200.000};
  2. // kicsit szebben formázva
  3. var person = {
  4. // tulajdonság-tulajdonságérték
  5. fName:"Nagy",
  6. lName:"Tamás",
  7. salary:250.000,
  8. fullName : function() {
  9. return this.fName + " " + this.lName;
  10. }
  11. };

Események

A HTML események akkor történnek, ha valami történik egy HTML elemmel, erre tudunk reagálni JavaScripttel: például, ha valamit ki szeretnénk íratni, amikor egy HTML elemmel történik valami, vagy az oldal teljesen betöltött.

A leggyakoribb JS események:

  • onchange: amikor egy HTML elem megváltozik
  • onclick: mikor egy HTML elemre kattintunk
  • onmouseover: mikor egy HTML elemre húzzuk az egeret.
  • onmouseout: mikor egy HTML elemről elhúzzuk az egeret.
  • onkeydown: mikor egy billentyűt lenyomunk
  • onload: mikor a böngésző betöltötte az oldalunkat.  
  1. <button onclick="alert('klikkeltél!')">Ez egy gomb</button>
  2. <button onmouseover="alert('Ráhúztad!')">Ez egy gomb</button>
  3. <button onmouseout="alert('Lehúztad!')">Ez egy gomb</button>

Tömbök

A JS tömbök arra valók, hogy egy adott változóban tároljunk el különböző értékeket. Nagyjából egy listaként fogható fel. A tömb mindegyik eleme lehet bármilyen típusú: number, string, array, object, undefined egyaránt.

  1. var a = [1,2,3,4];
  2. var b = [1,'piros',['alma',4]];
  3. var c = [1,'piros',{
  4. fName:"Kiss",
  5. lName:"Béla",
  6. salary:200.000
  7. }];
  8. var people = new Array("Tamás", "Zsuzsi", "Peti");
  9. //Tömbök érteékeinek megkapása
  10. console.log(a[0]);
  11. console.log(b[2][0]);
  12. console.log(c[2].fName);

Osztályok

A JavaScript nyelven az osztályok, és objektumok hasonló elven működnek, mint ahogy más nyelvek esetén.

Definiálhatunk konstruktort egy osztályon belül, ami mindig meg fog hívódni a példányosítás során. Az osztályon belül definiálhatunk tulajdonságokat, függvényeket, és van lehetőség a öröklődésre is.

  1. class Animal {
  2. //tulajdonság definiálása
  3. sf_name="Állat";
  4. // konstruktor
  5. constructor(color) {
  6. this.color = color;
  7. }
  8. // függvények
  9. sayColor() {
  10. return 'My color is ' + this.color;
  11. }
  12. sayName() {
  13. return 'Ennek az osztálynak a neve: '+this.name;
  14. }
  15. }
  16. // osztályok származtatása
  17. class Horse extends Animal {
  18. sf_name="ló";
  19. }
  20. var animal = new Animal("fekete");
  21. console.log(animal.sayColor());
  22. var horse = new Horse("fekete");
  23. console.log(horse.sayName());

Megjegyzések

Népszerű bejegyzések ezen a blogon

Ágazati alapvizsga (Programozás)

Ágazati alap vizsga (WEB)

HTML + CSS (elmélet+gyakrolat)