Programovanie v JavaScripte,
časť 4
Pre úplných začiatočníkov
Funkcie a premenné
Funkcia môže byť uložená do premennej
function foo() {
console.log('funkcia foo');
}
var bar = function () {
console.log('funkcia uložená v bar');
};
foo();
bar();
Metódy
Funkcia môže byť uložená do property
Takejto funkcii sa vraví metóda
var fero = {
pozdrav: function (textPozdravu) {
console.log(
'"' + textPozdravu + '", vraví Fero'
);
}
};
Metódy
Vo vnútri metódy viete pristupovať k ostatným vlastnostiam objektu pomocou this
var fero = {
vyska: 183,
zmenVysku: function (novaVyska) {
this.vyska = novaVyska;
}
};
fero.zmenVysku(190);
Úloha:
Napíšte pre objekt karel metódy dolava a doprava, ktoré otočia Karla a ešte aj zmenia hodnotu property smer
var SEVER = 'sever';
var JUH = 'juh';
var VYCHOD = 'vychod';
var ZAPAD = 'zapad';
var karel = {
smer: SEVER,
doprava: function () {
otocDoprava();
if (this.smer === SEVER) {
this.smer = VYCHOD;
} else if (this.smer === VYCHOD) {
this.smer = JUH;
} else if (this.smer === JUH) {
this.smer = ZAPAD;
} else {
this.smer = SEVER;
}
}
};
Mohli by sme metódy nazvať otocDoprava a otocDolava?
Mohli
Pretože metódy patria objektu
a nie sú "globálne"
Malá odbočka
Príkaz switch
if (this.smer === SEVER) {
this.smer = VYCHOD;
} else if (this.smer === VYCHOD) {
this.smer = JUH;
} else if (this.smer === JUH) {
this.smer = ZAPAD;
} else {
this.smer = SEVER;
}
switch (this.smer) {
case SEVER:
this.smer = VYCHOD;
break;
case VYCHOD:
this.smer = JUH;
break;
case JUH:
this.smer = ZAPAD;
break:
case ZAPAD:
this.smer = SEVER;
break;
}
Polia
Pole
Pole / array
Pole je neštruktúrované zoskupenie viacerých prvkov v jednej premennej
Prvky sú zoradené a každý má svoju (číselnú) pozíciu
Vo väčšine jazykov je to samostatný dátový typ
V JavaScripte nie. Tam je pole objekt
Pole / array
var objekt = {
meno: 'Ferko',
priezvisko: 'Mrkvička',
vek: 42,
vyska: 183,
};
console.log(objekt.meno);
console.log(objekt.vyska);
objekt.hmotnost = 75;
var pole = [
'čierna',
'biela',
'červená',
'zelená',
];
console.log(pole[0]);
console.log(pole[3]);
pole[4] = 'modrá';
Dĺžka poľa
Počet prvkov v poli
Najvyššie číslo pozície + 1
var pole = [
'cierna',
'biela',
'cervena',
'zelena',
];
console.log(
pole.length
);
Použitie napr. pri pridávaní prvky vždy na koniec poľa:
pole[pole.length] = 'fialová';
pole[pole.length] = 'žltá';
pole[pole.length] = 'sivá';
Pole je v JS objekt
A objekty majú metódy
pole.push(prvok) | pridá na koniec poľa prvok |
prvok = pole.pop() | odoberie prvok z konca poľa |
pole.unshift() / pole.shift() | push() a pop() pre začiatok poľa |
novePole = pole.filter(funkcia) | prefiltruje pole pomocou funkcie |
prvok = pole.find(funkcia) | nájde prvok v poli |
novePole = pole.map(funkcia) | nad každým prvok zavolá funkciu a vráti nové pole |
Zadanie:
Vytvorte premennú riadok, ktorá bude predstavovať spodný riadok na mape a bude typu pole.
Každý prvok poľa bude hovoriť, či sa na danom políčku nachádza (1) alebo nenachádza (0) značka.
Otočte Karla doprava, nechajte ho prejsť cez celý spodný riadok a na párnom políčku uložte značku.
Zároveň si do premennej riadok zapisujte, kde ste položili značku.
Na začiatku v riadku nie sú žiadne značky (zapíšte to do poľa).
Programovanie v Javascripte, časť 4
By Milan Herda
Programovanie v Javascripte, časť 4
- 592