Martynas Kašelionis
WEB developeris, programavimo mokytojas
Parengė: Martynas Kašelionis
From zero to hero
JavaScript – objektiškai orientuota skriptų programavimo kalba, besiremianti prototipų principu.
Tai interpretuojama programavimo kalba.
Galimybės:
Async - parsiunčia skriptą neblokuodamas tinkalpio renderinimo, vykdomas, kaip visi elementai yra užkrauti. Tačiau, jeigu yra svarbus skripto failų vykdomo eiliškumas, šis būdas negarantuoja teisingo rikiavimo.
Defer atributas užtikrina teisingą failų rikiavimą.
Galima naudoti patinkantį kodo redaktorių:
Arba IDE (inetgruota programavimo aplinka):
var mokykla= "KITM";
console.log(mokykla);
mokykla = "X gimnazija";
console.log("Mokyklos pavadinimas: " + mokykla);
Leidžiami simboliai kintamojo vardo sudarymui:
Kintamųjų vardai turi būti informatyvūs:
Konstanta yra vieta atmintyje, tačiau skirtingai nuo kintamųjų jos reikšmė negali būti perašyta.
Tai "read-only" kintamasis :)
Dekaravimas:
const b=5;
Viskas JavaScript kalboje yra objektai!!!
Skaičių tipai:
Skaičiavimo sistemos:
Dirbant su duomenų tipais
Operatorius, kuris gražina duomenų tipą
var testas = 'kkkk';
console.log(typeof kazkas);
// Output: "number"Patikrina ar reikšmė nėra skaičius
function milliseconds(x) {
if (isNaN(x)) {
return 'Not a Number!';
}
return x * 1000;
}
console.log(milliseconds('100F'));
// expected output: "Not a Number!"
console.log(milliseconds('0.0314E+2'));
// expected output: 3140Savybės:
var skaicius++;
var skaicius--;
var skaicius = 10;
++skaicius; //pre increement
skaicius++; //post increementPriskyrimo operatorius (=), priskiria reikšmę kintamajam.
Efektyvesnis priskyrimas (shorthand'ai):
var atlyginimas +=100;
var atlyginimas *=100;
var atlyginimas /=100;
var atlyginimas -=100;Viengubos kabutės vs dvigubos:
var pavadinimas = 'From zero to hero';
console.log(pavadinimas);var kabutesViengubos = 'Viengubos.';
var kabutesDvigubos = "Dvigubos";
var klausimas = 'Ką tu?"; //klaida
var status = "I'm online."; //tai kabutes, naudoti galimaKaip spręsti problemą, nenaudojant skirtingų kabučių
var positionTitle = 'I'm developer of all internet'; // gausim klaidąGalim escape'int simbolį.
var positionTitle = 'I\'m developer of all internet'; // Dabar viskas geraiJavaScript kalboje eilučių jungimui naudojamas + ženklas
var pirma = 'Vardenis, ';
var antra = 'Pavardenis';
var sujungta = pirma + antra;
var vardas = 'Bilas';
vardas.length; // output'as: 5
var vardas = 'Bilas';
vardas[3]; // output'as: "a"
vardas.indexOf("las"); // output'as: 2
vardas.slice(0,2); // output'as: "Bi"
vardas.toLowerCase(); // output'as: "bilas"
vardas.toUpperCase(); // output'as: "BILAS
var pakeistasVardas = vardas.replace("Bi","Gi");
pakeistasVardas; // output'as: "Gilas"
JS masyvai bendrąja prasme yra objektų sąrašai. Tai atskiri objektai, kurie saugo ne vieną reikšmę.
Masyvo elementus, mes galime išvesti nurodant indeksą arba naudojant ciklą.
var pirkiniai = ['duona', 'pienas', 'sūris', 'saldainiai', 'riešutai'];
pirkiniai;
var seka = [1, 1, 2, 3, 5, 8, 13];
var skirtingiDuomenys = ['saskaita', 795, [0, 1, 2]];Masyvo elementų pasiekimas ir keitimas:
pirkiniai[0]; // gražins "duona"
pirkiniai[0] = "Sultys";
duomenys[0][0];
var seka = [1, 1, 2, 3, 5, 8, 13];
seka.length; // output: 7Naudingi metodai:
var duomenys = 'Kaunas,Vilnius,Alytus,Klaipeda';
var duomenuMasyvas = duomenys.split(',');
duomenuMasyvas;Naudingi metodai:
var duomenys = 'Kaunas,Vilnius,Alytus,Klaipeda';
var duomenuMasyvas = duomenys.split(',');
duomenuMasyvas;
var stringas = duomenuMasyvas.join(',');
stringas;Naudingi metodai:
var kurGalimaPavalgyt = ['Casa Dela Casa', 'Amber', 'Kinai', 'Kuchnia', 'RePUBlic'];
kurGalimaPavalgyt.push('Kepyklele'); //prides nauja masyvo elementa i masyvo pabaiga.
kurGalimaPavalgyt.pop(); // pasalins paskutini masyvo elementa
unshift() ir shift() veikia, kaip push() ir pop(), tik prideda ir šalina elementus masyvo pradžioje.
if (sąlyga) {
vykdomas kodas, jeigu sąlyga true
} else {
vykdomas kitas kodas
}
Else nėra būtina naudoti. Galima ir taip:
if (sąlyga) {
vykdomas kodas, jeigu sąlyga true
}
vykdomas kitas kodas
var uzmokestis = 500;
var islaidos = 500;
if (uzmokestis === islaidos) {
console.log('Nieko gero');
} else {
console.log('Per mazai duomenu vertinimui')
}var kalba = 'lt';
if (kalba === lt) {
console.log('Labas');
} else if (kalba==='en') {
console.log('Hello')
} else{
console.log('Nepazystama kalba');
}
Betkuri reikšmė, kuri nėra false, undefined, null, 0, NaN arba tuščia eilutė gražina true.
var gerimas = 'Pienas';
if (gerimas) {
console.log('Puiku, galėsim, kaip reikiant atsigerti');
} else {
console.log('Deja, bet gėrimo nėra.');
}If viduje galima nauditi, kitą if
if (dangus === 'sauleta') {
if (temperature < 30) {
console.log('Ieškok pavėsio ir vartok daug skysčių);
} else if (temperature >= 20) {
console.log('Idealus oras išeiti į lauką');
}
}Operatoriai AND,OR ir NOT :
if (dangus === 'sauletas' && temperature < 30) {
consol.log('Ieškok pavėsio ir vartok daug skysčių');
} else if (choice === 'sunny' && temperature >= 20) {
console.log('Lauk š lauką');
}if (leduVagonelisLauke || namoBusena === 'dega') {
console.log('Turi greitai bėgti į lauką');
} else {
console.log('Lik namuose');
}if (!(leduVagonelisLauke || namoBusena === 'dega')) {
console.log('Lik namuose');
} else {
console.log('Turi palikti namus');
}Naudinga naudoti, kai tikrinama daug reikšmių
Sintaksė:
switch (išraiška) {
case pasirinkimas1:
vykdyti kodą
break;
case pasirinkimas2:
vykdyti kodą
break;
default:
vykdyti kodą
}Naudinga naudoti, kai tikrinama daug reikšmių
Pavyzdys:
switch (kalba) {
case 'lt':
console.log("Sveiki");
break;
case 'en':
console.log("Hello");
break;
default:
console.log("Klaida: Neatpažinta kalba.");
}
}
Programavime ciklai kartoja veiksmus iteracijomis , kol sąlygą (exit condition) yra tenkinama.
Ciklo elementai:
for (skaitliukas; salyga; iteratorius) {
// vykdomas kodas
}var vardai = ['Ieva', 'Jonas', 'Kristina', 'Lolita', 'edita'];
for (var i = 0; i < vardai.length; i++) {
console.log(vardai[i]);
}
var vardai = ['Ieva', 'Jonas', 'Kristina', 'Lolita', 'edita'];
for (var i = 0; i < vardai.length; i++) {
if(vardai[i] === 'Kristina'){
console.log('Kontaktas surastas');
console.log(vardai[i]);
break;
}
else{
continue;
}
}Break ir continue naudojimas.
Su while ir do while ciklais galite susipažinti :
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Looping_code
Skirta kodo struktūrizavimui,kaidaug kartų naudojamas kodas yra iškeliamas į vieną vietą, o po to kviečiama funkcija, paduodami skirtingi parametrai.
function pavadinimas (parametrai) {
// vykdomas kodas
}
function daugink(a, b) {
return a * b;
}• function sandauga (a, b) {return a * b;} // Deklaravimas
• var sandauga = function (a, b) {return a * b}; // Išraiška
• var sandauga =
new Function("a", "b", "return a * b"); // Konstruktorius
Kai funkcija neturi pavadinimo.
• Dažniausiai naudojama kitų funkcijų callback’uose.
• Callback – tai kai grąžinama ir vykdoma kita funkcija atlikus tam tikrus rezultatus. LABAI plačiai naudojama.
sarasas.map(function(el){/*...*/})
Kai funkcija paduodama per parametrą ir yra iškviečiama.
• Pvz.
functiondemo(a,b,callback){/*...*/callback();}
demo(1, 5, function() { console.log('JS yra jėga!'); });Kai funkcija yra anoniminė ir iš karto pakviečiama.
(function () { console.log(“veikia!”); })();Global scope
var a = 99;
function labas() {
alert("Labas, " + a + "!"); }
labas(); // atspausdins tekstą "Labas, 99!"
alert(a); // parodys skaičių 99
console.log("a = " + a); // atspausdins "a = 99" konsolėjeLocal scope
var a = 99;
function labas() {
var x = 5;
alert("Labas, " + (a + x) + "!");
}
labas(); // atspausdins tekstą “Labas, 104!"
alert(a); // parodys skaičių 99
alert(x); // išmes klaidą (exception)By Martynas Kašelionis