Horváth Győző
Egyetemi adjunktus
1117 Budapest, Pázmány Péter sétány 1/c., 2.420-as szoba
Tel: (1) 372-2500/1816
horvath.gyozo@inf.elte.hu
Lásd a tárgy honlapját
<script>
elemkonzol
fájl
//Number (szám)
12
12.34
//String (szöveg)
'Szöveg'
"Szöveg"
'Idézőjelben "így" macsakörmölök'
"Macskakörömben 'így' idézek"
'Idézőjelben \' idézőjel'
"Macskakörömben \" macskaköröm"
'Escape: \t \n \\ '
//Boolean (logikai)
true
false
null //null
undefined //undefined
//Array (tömb)
[
'alma',
'körte',
'barack'
]
//Object (objektum)
{
nev: 'Dávid',
kor: 6
}
var
kulcsszóvar i = 1;
var x = [2, 6, 3, 1];
var a; //undefined
===
, !==
12 == '12' //true
12 === '12' //false
if
, else
for
, while
, do-while
switch
, case
, break
//Függvény általános formája
function fvnev(par1, par2) {
utasítások;
return visszatérési érték;
}
//Például
function negyzet(x) {
return x * x;
}
negyzet(3); // => 9
var
kulcsszó lokális változóvar alma = 'piros';
function fv() {
//var korte;
console.log(alma); //=> piros
console.log(korte); //=> undefined
if (true) {
var korte = 'sarga';
}
}
fv();
console.log(korte); //=> ReferenceError
var obj = {
tulajdonsag: 1,
'ez is tulajdonság': 2,
metodus: function () {
console.log(this.tulajdonsag);
}
};
obj.tulajdonsag
obj['ez is tulajdonsag']
obj.metodus()
//Objektum megadása
var obj = {
a: 1,
b: 2
};
//Minta: új tulajdonság felvételére
obj.c = 3;
//Minta: tulajdonság lekérdezése (olvasás)
obj.a === 1 // obj.név formában történő olvasás'
obj['a'] === 1, // obj['név'] formában történő olvasás"
obj.d === undefined //Nem létező névre hivatkozva undefined-ot kapunk
//Minta: tulajdonság értékének módosítása
obj.b = 42;
//Minta: tulajdonság törlése
delete obj.c;
//A prototípuslánc kialakítása
var obj2 = Object.create(obj1);
//Tesztek
obj1.isPrototypeOf(obj2) //obj1 szerepel obj2 prototípusláncában
Object.getPrototypeOf(obj2) === obj1 //obj2 prototípusa obj1
function Person(name) {
this.name = name;
}
Person.prototype.describe = function () {
return 'Person called '+this.name;
};
var jim = new Person('Jim');
jim.name //'Jim'
jim.describe() //'Person called Jim'
function Employee(name, title) {
Person.call(this, name);
this.title = title;
}
Employee.prototype = Object.create(Person.prototype);
Employee.prototype.constructor = Employee;
Employee.prototype.describe = function () {
return Person.prototype.describe.call(this)+' ('+this.title+')';
};
var jane = new Employee('Jane', 'CTO');
jane.describe() //'Person called Jane (CTO)'
function subclasses(SubC, SuperC) {
var subProto = Object.create(SuperC.prototype);
// Save `constructor` and, possibly, other methods
copyOwnPropertiesFrom(subProto, SubC.prototype);
SubC.prototype = subProto;
SubC._super = SuperC.prototype;
};
function Employee(name, title) {
Employee._super.constructor.call(this, name);
this.title = title;
}
Employee.prototype.describe = function () {
return Employee._super.describe.call(this)+' ('+this.title+')';
};
subclasses(Employee, Person);
var uresTomb = [];
var tomb = [12, 'alma', true];
tomb[0]; // => 12;
tomb[1]; // => 'alma';
tomb[2]; // => true;
tomb.length // => 3
//Módosítás
tomb[0] = 13;
//Bővítés
tomb[tomb.length] = 'uj';
tomb[100] = 'messze';
tomb.length; // => 101
tomb[99]; // => undefined
//Törlés (méret nem változik)
delete tomb[1];
tomb[1]; // => undefined
tomb.length; // => 101
pop()
, push(e)
, shift(e)
, unshift()
: végéről, végére, elejére, elejéről.reverse()
: megfordítja a tömb elemeit.splice(honnan, mennyit)
: kivág a tömbből elemeket. Ezzel lehet úgy törölni, hogy a tömb hossza csökkenjen.join(szeparátor)
: a tömb elemeit a szeparátor
-ral elválasztva szöveggé fűzi össze.forEach
: iterálásmap
: másolásfilter
: kiválogatásevery
: optimista eldöntéssome
: eldöntésreduce
: összegzésvar numbers = [1, 2, 3];
var oddNumbers = numbers.filter(function (item) {
return item % 2 !== 0;
});
oddNumbers; //[1, 3]
var gyumolcsok = [
'alma',
'korte',
'szilva'
];
//A gyümölcsök kiírása a konzolra
for (var i = 0; i < gyumolcsok.length; i++) {
console.log(gyumolcsok[i]);
}
//vagy
gyumolcsok.forEach(function (gyumolcs) {
console.log(gyumolcs);
});
//C++ vector --> JavaScript tömb
var kutyuk = [
'telefon',
'fülhallgató',
'pendrive',
'e-könyv olvasó'
];
//C++ struct --> JavaScript objektum
var hallgato = {
nev: 'Mosolygó Napsugár',
neptun: 'kod123',
szak: 'Informatika BSc'
};
//Rekordok tömbje
var hallgatok = [
{
nev: 'Mosolygó Napsugár',
neptun: 'kod123',
szak: 'Informatika BSc'
},
{
nev: 'Kék Ibolya',
neptun: 'kod456',
szak: 'Informatika BSc'
}
];
JSON.parse()
: szövegből adatszerkezetJSON.stringify()
: adatszerkezetből szöveg[
{
"nev":"Mosolygó Napsugár",
"neptun":"kod123",
"szak":"Informatika BSc",
"targyak":[
"Programozás",
"Webfejlesztés 2.",
"Számítógépes alapismeretek"
]
},
{
"nev":"Kék Ibolya",
"neptun":"kod456",
"szak":"Informatika BSc",
"targyak":[
"Programozás",
"Webfejlesztés 2.",
"Diszkrét matematika",
"Testnevelés"
]
}
]
//Deklaráció
function osszead(a, b) {
return a + b;
}
//Függvénykifejezés
var osszead = function(a, b) {
return a + b;
}
function [név]([param [, param [..., param]]]) {
utasítások
}
function kereses(x, T) {
var i = 0;
while (i < x.length && !T(x[i])) {
i++;
}
return {
vane: i < x.length,
sorsz: i
};
}
function negativE(p) {
return p < 0;
}
var tomb = [1, 3, -2, 8];
kereses(tomb, negativE);
function muveletKeszito(op) {
if (op === '+') {
return function (a, b) {
return a + b;
};
}
else if (op === '*') {
return function (a, b) {
return a * b;
};
}
}
//Összeadó függvény készítése
var muvelet = muveletKeszito('+');
muvelet(10, 32); //42
//Szorzó függvény készítése
var muvelet = muveletKeszito('*');
muvelet(10, 32); //320
Minden függvény kapcsolatban marad az őt tartalmazó függvény változóival, még akkor is, ha a külső függvény véget ér.
function createIncrementor(start) {
return function () { // (1)
start++;
return start;
}
}
var inc = createIncrementor(5);
inc() // 6
inc() // 7
inc() // 8
node fájlnév