+ All Categories
Home > Documents > Základy programování v JavaScriptu

Základy programování v JavaScriptu

Date post: 14-Jan-2016
Category:
Upload: habib
View: 21 times
Download: 0 times
Share this document with a friend
Description:
Základy programování v JavaScriptu. programujeme dynamické HTML a internetové aplikace RNDr. Pavel Vlach, Ph.D. Obsah vzdělávacího kurzu. co to je JavaScript, vývoj scriptovacích jazyků jádro Javascriptu syntaxe datové typy, proměnné, operátory řídící struktury, větvení programu, cykly - PowerPoint PPT Presentation
89
Základy programování v Základy programování v JavaScriptu JavaScriptu programujeme dynamické HTML programujeme dynamické HTML a internetové aplikace a internetové aplikace RNDr. Pavel Vlach, Ph.D. RNDr. Pavel Vlach, Ph.D.
Transcript
Page 1: Základy programování v JavaScriptu

Základy programování v Základy programování v JavaScriptuJavaScriptu

programujeme dynamické HTMLprogramujeme dynamické HTML

a internetové aplikacea internetové aplikace

RNDr. Pavel Vlach, Ph.D.RNDr. Pavel Vlach, Ph.D.

Page 2: Základy programování v JavaScriptu

Obsah vzdělávacího kurzuObsah vzdělávacího kurzu• co to je JavaScript, vývoj scriptovacích jazykůco to je JavaScript, vývoj scriptovacích jazyků

• jádro Javascriptujádro Javascriptu– syntaxesyntaxe– datové typy, proměnné, operátorydatové typy, proměnné, operátory– řídící struktury, větvení programu, cyklyřídící struktury, větvení programu, cykly– pole, funkcepole, funkce– základy objektově orientovaného programovánízáklady objektově orientovaného programování

• JavaScript v prohlížečiJavaScript v prohlížeči– integrace v HTMLintegrace v HTML– objekty Window, Screen, Navigator, Location, Historyobjekty Window, Screen, Navigator, Location, History– objekt Document – obrázky, odkazy, záložkyobjekt Document – obrázky, odkazy, záložky– formuláře a jejich prvkyformuláře a jejich prvky

• DOMDOM

• Ovládání CSS pomocí scriptůOvládání CSS pomocí scriptů

• Ovladače událostíOvladače událostí

• Praktické příkladyPraktické příklady

Page 3: Základy programování v JavaScriptu

JavaScriptJavaScript

• univerzální (nezávislý na platformě) scriptovací univerzální (nezávislý na platformě) scriptovací objektově-orientovaný jazykobjektově-orientovaný jazyk

• představila společnost Netscape (B. Eich)představila společnost Netscape (B. Eich)• obvyklé použití – klientský scriptovací jazyk (použití obvyklé použití – klientský scriptovací jazyk (použití

přímo v prohlížeči)přímo v prohlížeči)• vkládaný do HTML – ovládá grafické a interaktivní vkládaný do HTML – ovládá grafické a interaktivní

prvky stránky (obrázky, formuláře, odkazy, záložky) prvky stránky (obrázky, formuláře, odkazy, záložky) nebo vzhled stráneknebo vzhled stránek

• syntakticky podobný C++, Javasyntakticky podobný C++, Java• nemá vlastní grafické nástroje (využívá HTML a CSS)nemá vlastní grafické nástroje (využívá HTML a CSS)

Page 4: Základy programování v JavaScriptu

Co JavaScript neumí?Co JavaScript neumí?

• žádné grafické schopnosti (ale může využít žádné grafické schopnosti (ale může využít grafických schopností HTML a CSS)grafických schopností HTML a CSS)

• neumožňuje práci se soubory - velké neumožňuje práci se soubory - velké omezení pro programovací jazyk, logické z omezení pro programovací jazyk, logické z bezpečnostních důvodůbezpečnostních důvodů

• nepodporuje práce se sítí – jen odeslání nepodporuje práce se sítí – jen odeslání formulářů na server, přechod na adresu URLformulářů na server, přechod na adresu URL

Page 5: Základy programování v JavaScriptu

HistorieHistorie

• 1995 – představen jako doplněk k HTML1995 – představen jako doplněk k HTML• Java v názvu – žádná příbuznost k JAVA, jen Java v názvu – žádná příbuznost k JAVA, jen

obchodní tahobchodní tah• 1997 – standardizace ECMA (Europen 1997 – standardizace ECMA (Europen

Computer Manufacturers Association) – Computer Manufacturers Association) – základní standard, ze kterého vychází i např. základní standard, ze kterého vychází i např. ActionScriptActionScript

• 1998 – ISO standardizace1998 – ISO standardizace

× pozor na různé verze !!× pozor na různé verze !!

Page 6: Základy programování v JavaScriptu

podpora prohlížečůpodpora prohlížečů

• odhadem 5% uživatelů nemají funkční odhadem 5% uživatelů nemají funkční JavaScritpové kódy – prohlížeč bez podpory JavaScritpové kódy – prohlížeč bez podpory (např. Lynx, prohlížeče v PDA, mobilech) (např. Lynx, prohlížeče v PDA, mobilech) nebo scripty zakázanénebo scripty zakázané

• moderní prohlížeče všechny podporují moderní prohlížeče všechny podporují 1.5ECMA JavaScript (nejmodernější) – od IE 1.5ECMA JavaScript (nejmodernější) – od IE 5.5, Navigatoru 6.0 (tj včetně Mozilly a 5.5, Navigatoru 6.0 (tj včetně Mozilly a Firefoxu), Opera 6.0Firefoxu), Opera 6.0

• různá rozšíření IE (někdy je přejal i různá rozšíření IE (někdy je přejal i Navigator) – např. document.all, innerHTML, Navigator) – např. document.all, innerHTML, innerTextinnerText

Page 7: Základy programování v JavaScriptu

Jádro JavaScriptuJádro JavaScriptu

základní syntaxe, datové typy, základní syntaxe, datové typy, proměnné, příkazy, větveníproměnné, příkazy, větvení

Page 8: Základy programování v JavaScriptu

Základní syntaxeZákladní syntaxe

• znaková sada Unicode (2 byte – 256 znaků)znaková sada Unicode (2 byte – 256 znaků)• case senzitive jazyk – rozlišuje malá a velká case senzitive jazyk – rozlišuje malá a velká

písmenapísmena• vždy středníky za datovými a příkazovými vždy středníky za datovými a příkazovými

strukturami (× jsou volitelné, ale JavaScript strukturami (× jsou volitelné, ale JavaScript je implicitně sám doplňuje, což může je implicitně sám doplňuje, což může způsobit problémy)způsobit problémy)

• složené závorky pro bloky příkazůsložené závorky pro bloky příkazů• komentáře jako v PHP, C++, Javě…komentáře jako v PHP, C++, Javě…

Page 9: Základy programování v JavaScriptu
Page 10: Základy programování v JavaScriptu

co něco zkusit?co něco zkusit?

• document.open(); document.open(); – otevírá dokumentotevírá dokument

• document.write(), document.write(), – zapisuje do dokumentuzapisuje do dokumentu

• alert();alert();– vypisuje do výstražného okna něcovypisuje do výstražného okna něco

• ÚkolÚkol– vypište něco na obrazovkuvypište něco na obrazovku– vyvolejte výstražné okno s nějakým textemvyvolejte výstražné okno s nějakým textem

Page 11: Základy programování v JavaScriptu

Datové typyDatové typy

• primitivní datové typyprimitivní datové typy– číslo (číslo (nnumber)umber)– řetězec (řetězec (sstring)tring)– logická hodnota (logická hodnota (bboolean)oolean)– null, undefinednull, undefined

• pole pole • objektyobjekty• obalové objekty (obalové objekty (NNumber, umber, SString, tring, BBoolean)oolean)• funkcefunkce

Page 12: Základy programování v JavaScriptu

číslačísla

• není rozdíl mezi celočíselnými hodnotami není rozdíl mezi celočíselnými hodnotami (integer - v MySQL, C++, JAVA – int, shortint, (integer - v MySQL, C++, JAVA – int, shortint, longint) a čísly s desetinou čárkou (real – longint) a čísly s desetinou čárkou (real – např. double)např. double)

• -9007199254740992 (-2-9007199254740992 (-25353) – 9007199254740992 (2) – 9007199254740992 (25353))• 64 bitová reprezentace čísla (tzn. přesnost na 15 64 bitová reprezentace čísla (tzn. přesnost na 15

desetinných míst)desetinných míst)

• možnost zápisu hexadecimálně (0×ff)možnost zápisu hexadecimálně (0×ff)• možnost zápisu v dalších soustavách možnost zápisu v dalších soustavách

(pomocí metody toString())(pomocí metody toString())

Page 13: Základy programování v JavaScriptu

číslačísla

• matematické operace s čísly – pomocí matematické operace s čísly – pomocí objektu Mathobjektu Math

Page 14: Základy programování v JavaScriptu

čísla – speciální hodnotyčísla – speciální hodnoty

• Infinity – kladné nebo záporné nekonečnoInfinity – kladné nebo záporné nekonečno• NaN – Not A Number – nečíselná hodnotaNaN – Not A Number – nečíselná hodnota• Number.MAX_VALUENumber.MAX_VALUE• Number.MIN_VALUENumber.MIN_VALUE• Number.NaNNumber.NaN• Number.POSITIVE_INFINITYNumber.POSITIVE_INFINITY• Number.NEGATIVE_INFINITYNumber.NEGATIVE_INFINITY

Page 15: Základy programování v JavaScriptu

řetězce – stringřetězce – string

• datový typ reprezentovaný znaky UNICODEdatový typ reprezentovaný znaky UNICODE• text uzavřený do uvozovek nebo apostrofůtext uzavřený do uvozovek nebo apostrofů

Page 16: Základy programování v JavaScriptu

escape sekvenceescape sekvence

• některé znaky nebo akce se musí zapisovat některé znaky nebo akce se musí zapisovat se zpětným lomítkem (tzv. escape sekcence)se zpětným lomítkem (tzv. escape sekcence)

Page 17: Základy programování v JavaScriptu

spojování řetězcůspojování řetězců

• provádí se pomocí znaménka + (na rozdíl od provádí se pomocí znaménka + (na rozdíl od PHP)PHP)

Page 18: Základy programování v JavaScriptu

příklady funkcí pro práci s řetězcipříklady funkcí pro práci s řetězci

Page 19: Základy programování v JavaScriptu

logické hodnoty - booleanlogické hodnoty - boolean

• dvě hodnoty – true (pravda, 1), false dvě hodnoty – true (pravda, 1), false (nepravda, 0)(nepravda, 0)

• tento datový typ je často výsledkem tento datový typ je často výsledkem porovnání (větvení pomocí if)porovnání (větvení pomocí if)

Page 20: Základy programování v JavaScriptu

PolePole• indexovaný soubor datových hodnotindexovaný soubor datových hodnot• číslování od nuly (první prvek pole má index [0]číslování od nuly (první prvek pole má index [0]• např: dny v týdnu, seznamynapř: dny v týdnu, seznamy

$DenvTydnu[1]=“pondělí“;$DenvTydnu[1]=“pondělí“;$DenvTydnu[2]=“úterý“;$DenvTydnu[2]=“úterý“;$DenvTydnu[7]=“neděle“;$DenvTydnu[7]=“neděle“;

• lze použít asociativní pole:lze použít asociativní pole:$PocetObyvatel[$PocetObyvatel[““Blovice“]=4005;Blovice“]=4005;$PocetObyvatel[$PocetObyvatel[““Habří“]=0;Habří“]=0;

• pole mohou obsahovat jakékoliv datové prvky – pole mohou obsahovat jakékoliv datové prvky – čísla, řetězce, jiná pole, objektyčísla, řetězce, jiná pole, objekty

• definice pomocí konstruktoru definice pomocí konstruktoru new Array();new Array();

Page 21: Základy programování v JavaScriptu

PolePole

Page 22: Základy programování v JavaScriptu

objektyobjekty

• soubor pojmenovaných hodnot uspořáda-soubor pojmenovaných hodnot uspořáda-ných do logického celkuných do logického celku

Page 23: Základy programování v JavaScriptu

objektyobjekty

• objekty se většinou stanovují obecně, pak se objekty se většinou stanovují obecně, pak se vytváří kopie (instance) pomocí vytváří kopie (instance) pomocí konstruktorukonstruktoru a s daty v objektech se pracuje pomocí a s daty v objektech se pracuje pomocí funkcí – tzv. funkcí – tzv. metodmetod

• prakticky celý klientský JavaScript je založen prakticky celý klientský JavaScript je založen na Objektech – i když to není zřejména Objektech – i když to není zřejmé– všechny prvky na html stránce jsou podřízené všechny prvky na html stránce jsou podřízené

objektu Window objektu Window – potomky tohoto objektu (třídy) jsou Document, potomky tohoto objektu (třídy) jsou Document,

Frame, Field, Link, Img, Anchor, …Frame, Field, Link, Img, Anchor, …

Page 24: Základy programování v JavaScriptu

funkcefunkce

• část předdefinovaného kódu JavaScriptučást předdefinovaného kódu JavaScriptu• je definována jen jednou, lze jí opakovaně je definována jen jednou, lze jí opakovaně

volatvolat• sémanticky lze rozlišit:sémanticky lze rozlišit:– proceduryprocedury – úseky kódu, které nemají parametr a – úseky kódu, které nemají parametr a

jen vykonávají standardní věci (např. výpis části jen vykonávají standardní věci (např. výpis části kódu)kódu)

– funkcefunkce – generuje výstup závislý na vstupních – generuje výstup závislý na vstupních parametrechparametrech

Page 25: Základy programování v JavaScriptu

funkce funkce

• JavaScript obsahuje řadu přednastavených JavaScript obsahuje řadu přednastavených funkcí (resp. metod), pro práci s čísly (např. funkcí (resp. metod), pro práci s čísly (např. metody objektu Math)metody objektu Math)

• uživatel může definovat řadu funkcí nebo uživatel může definovat řadu funkcí nebo metod – tj. funkcí vázaných k určitým metod – tj. funkcí vázaných k určitým objektůmobjektům

Page 26: Základy programování v JavaScriptu

funkcefunkce

Page 27: Základy programování v JavaScriptu

obalové objektyobalové objekty

• kolem primitivních datových typů number, kolem primitivních datových typů number, string a boolean existují tzv. obalové objekty string a boolean existují tzv. obalové objekty Number (), String() a Boolean ()Number (), String() a Boolean ()

• obsahují další metody (funkce) pro práci s obsahují další metody (funkce) pro práci s těmito datovými typytěmito datovými typy

• objekt objekt DateDate• objekt objekt ErrorError – při chybě, lze tak ošetřit kód – při chybě, lze tak ošetřit kód

nebo použít k laděnínebo použít k ladění

Page 28: Základy programování v JavaScriptu

ProměnnéProměnné

deklarace, platnost proměnných,deklarace, platnost proměnných,

primitivní a referenční typy, primitivní a referenční typy, uvolňování pamětiuvolňování paměti

Page 29: Základy programování v JavaScriptu

deklaracedeklarace

• skládá se z identifikátoru (názvu) – bez $!! a skládá se z identifikátoru (názvu) – bez $!! a hodnotyhodnoty

deklarace se provádí prostřednictvím slova deklarace se provádí prostřednictvím slova varvarvar pi;var pi;

pi = 3.14159;pi = 3.14159;

var retezec = ‚ahojky‘;var retezec = ‚ahojky‘;

• použití nedeklarované proměnné způsobí použití nedeklarované proměnné způsobí chybuchybu

• lze opakovaně deklarovat proměnnoulze opakovaně deklarovat proměnnou• nemusí se uvádět datový typnemusí se uvádět datový typ

Page 30: Základy programování v JavaScriptu

platnost proměnnýchplatnost proměnných

• deklarace ve funkci nebo metodě s použitím deklarace ve funkci nebo metodě s použitím var se vytvoří lokální proměnná platná jen ve var se vytvoří lokální proměnná platná jen ve funkcifunkci

• deklarací ve funkci bez použití var způsobí deklarací ve funkci bez použití var způsobí definici globální proměnné platné v celém definici globální proměnné platné v celém dokumentudokumentu

Page 31: Základy programování v JavaScriptu

primitivní typy×referenční typyprimitivní typy×referenční typy

• primitivní typy (cislo, boolean, string) primitivní typy (cislo, boolean, string) předávají hodnotupředávají hodnotu

• referenční typy předávají odkaz na místo v referenční typy předávají odkaz na místo v paměti (pole, objekt)paměti (pole, objekt)

Page 32: Základy programování v JavaScriptu

úkolúkol

• definujte různé proměnnédefinujte různé proměnné• proveďte matematické operace s čísly a proveďte matematické operace s čísly a

řetězci a vypište je na obrazovkuřetězci a vypište je na obrazovku• zkuste automatické přetypování pomocí čísla zkuste automatické přetypování pomocí čísla

uzavřeného do uvozovekuzavřeného do uvozovek

Page 33: Základy programování v JavaScriptu

uvolňování pamětiuvolňování paměti

• na rozdíl od C++ a JAVA se pamět uvolňuje na rozdíl od C++ a JAVA se pamět uvolňuje automatickyautomaticky

• na pozadí běží proces, který neustále hledá na pozadí běží proces, který neustále hledá reference nebo hodnoty, které nejsou reference nebo hodnoty, které nejsou dosažitelné, ty jsou označenydosažitelné, ty jsou označeny

• garbage collector maže takto označená datagarbage collector maže takto označená data

Page 34: Základy programování v JavaScriptu

operátoryoperátory

• matematické matematické + + - / * % ++ --- / * % ++ --

• porovnávací porovnávací == <= >= < > ===== <= >= < > ===

• logické logické && || !&& || !

• unární unární - +- +

• podmínkový (ternární)podmínkový (ternární)??

• bitovébitové

Page 35: Základy programování v JavaScriptu

PříkazyPříkazy

přiřazení, větvení (if, switch), cykly přiřazení, větvení (if, switch), cykly (while, do-while, for, for-in), break, (while, do-while, for, for-in), break,

continue, return, throw, continue, return, throw, try/catch/finallytry/catch/finally

Page 36: Základy programování v JavaScriptu

přiřazenípřiřazení

• provádí se pomocí znaku rovná seprovádí se pomocí znaku rovná se

Page 37: Základy programování v JavaScriptu

úkolúkol

• napište v PSPadu scriptnapište v PSPadu script• použijte různé deklarace proměnných, použijte různé deklarace proměnných,

operujte s nimi (pomocí operátorů a metod operujte s nimi (pomocí operátorů a metod objektu Math)objektu Math)

• výstup tisk (pomocí) metody alert () nebo výstup tisk (pomocí) metody alert () nebo kombinace document.open(); a kombinace document.open(); a document.write();document.write();

Page 38: Základy programování v JavaScriptu

větvení – if…elsevětvení – if…else

• strukturastrukturaif (výraz, podmínka) { …….. }if (výraz, podmínka) { …….. }

if (výraz, podmínka) { …….. } else { ……. }if (výraz, podmínka) { …….. } else { ……. }

if (výraz, podmínka) { …….. } else if { ……. }if (výraz, podmínka) { …….. } else if { ……. }

else else { ……. }{ ……. }

• v závorce se testuje proměnná typu boolean v závorce se testuje proměnná typu boolean nebo jakýkoliv výraz pomocí porovnávacích nebo jakýkoliv výraz pomocí porovnávacích operátorůoperátorů

Page 39: Základy programování v JavaScriptu

if…elseif…else

Page 40: Základy programování v JavaScriptu

podmínky - úkolpodmínky - úkol

• vytvořte 3 scripty, které budou využívat vytvořte 3 scripty, které budou využívat větvení pomocí podmínky větvení pomocí podmínky if elseif if elseif aa else else

• v prvním skriptu testujte výraz typu booleanv prvním skriptu testujte výraz typu boolean• v druhém skriptu testujte číselnou v druhém skriptu testujte číselnou

proměnnou pomocí operátorů proměnnou pomocí operátorů <, >, <=, =><, >, <=, =>• ve třetím scriptu testujte řetězce pomocí ve třetím scriptu testujte řetězce pomocí

operátorů operátorů == , !=== , != a logických operátorů a logických operátorů &&&& a a ||||

• uložte do vaší složkyuložte do vaší složky

Page 41: Základy programování v JavaScriptu

větvení switchvětvení switch

• nahrazuje níže uvedenou strukturu:nahrazuje níže uvedenou strukturu:if (výraz1) {…………}if (výraz1) {…………}

elseif (výraz2) {…………}elseif (výraz2) {…………}

elseif (výrazn) {…………}elseif (výrazn) {…………}

else {…………………….}else {…………………….}

• má tento tvarmá tento tvarswitch (podmínka) {switch (podmínka) {

case výraz1:case výraz1:

case výraz2:case výraz2:

case výraz3:case výraz3:

default:default:

}}

Page 42: Základy programování v JavaScriptu

switchswitch

Page 43: Základy programování v JavaScriptu

úkol - switchúkol - switch

• napište script, který podle řídící proměnné napište script, který podle řídící proměnné reaguje třemi způsobyreaguje třemi způsoby

• použijte výpis pomocí alert() nebo použijte výpis pomocí alert() nebo document.write()document.write()

• použijte switchpoužijte switch

Page 44: Základy programování v JavaScriptu

cyklus forcyklus for

• cyklus s parametrem – víme, kolikrát cyklus cyklus s parametrem – víme, kolikrát cyklus proběhneproběhne

for (i=1; i<=20; i++) { ……. }for (i=1; i<=20; i++) { ……. }

• před započetím konkrétního cyklu se vyhodnotí před započetím konkrétního cyklu se vyhodnotí výraz druhý (zde i<=20)výraz druhý (zde i<=20)

• neplatí-li podmínka, cyklus se ukončíneplatí-li podmínka, cyklus se ukončí• platí-li, cyklus pokračuje dále a provede se sekvence platí-li, cyklus pokračuje dále a provede se sekvence

mezi složenými závorkamimezi složenými závorkamipo ukončení těla smyčky se provede třetí výraz (zde po ukončení těla smyčky se provede třetí výraz (zde se parametr i zvýší o jedničkuse parametr i zvýší o jedničku

• vše se opakujevše se opakuje

Page 45: Základy programování v JavaScriptu

cyklus for cyklus for

Page 46: Základy programování v JavaScriptu

úkolúkol

• napište script, který pomocí cyklu for vypíše napište script, který pomocí cyklu for vypíše do okna prohlížeče toto:do okna prohlížeče toto:

Page 47: Základy programování v JavaScriptu

cyklus s podmínkoucyklus s podmínkou

• s podmínkou na začátku :s podmínkou na začátku :• tělo cyklu proběhne jen tehdy, je-li platná tělo cyklu proběhne jen tehdy, je-li platná

podmínkapodmínkawhile (podmínka) {…….}while (podmínka) {…….}

• s podmínkou na konci :s podmínkou na konci :• tělo cyklu proběhne vždy minimálně jednoutělo cyklu proběhne vždy minimálně jednou• opakuje se, pokud platí podmínkaopakuje se, pokud platí podmínka

do {…….} while (podmínka)do {…….} while (podmínka)

Page 48: Základy programování v JavaScriptu
Page 49: Základy programování v JavaScriptu

úkolúkol

• modifikujte závěr příkladu, aby vypisoval, modifikujte závěr příkladu, aby vypisoval, kdo vyhrál (počítač, hráč)kdo vyhrál (počítač, hráč)

• platí tyto podmínky:platí tyto podmínky:• má-li někdo součet 21 vyhrál, překročil-li má-li někdo součet 21 vyhrál, překročil-li

někdo 21 prohrál, nikdo nevyhrál v případě někdo 21 prohrál, nikdo nevyhrál v případě rovnosti 21 nebo překročení 21 u obou hráčůrovnosti 21 nebo překročení 21 u obou hráčů

Page 50: Základy programování v JavaScriptu

throwthrow

• za určité podmínky vyhazuje výjimku – chybuza určité podmínky vyhazuje výjimku – chybu

try, catch, finallytry, catch, finally

• trytry – obsahuje blok, který může způsobit chybu – obsahuje blok, který může způsobit chybu• catchcatch – zachytává a ošetřuje výjimky – zachytává a ošetřuje výjimky• finallyfinally – kód, který se provede i v případě chyby – kód, který se provede i v případě chyby

Page 51: Základy programování v JavaScriptu

throw, try, catch, finallythrow, try, catch, finally

Page 52: Základy programování v JavaScriptu

ObjektyObjekty

vytváření objektů, metodyvytváření objektů, metody

Page 53: Základy programování v JavaScriptu

objektyobjekty

• soubor pojmenovaných hodnot soubor pojmenovaných hodnot uspořádaných do logického celkuuspořádaných do logického celku

• objekty se vytváří zvláštní funkcí, tzv. objekty se vytváří zvláštní funkcí, tzv. konstruktorem konstruktorem -- ten vytváří novou instanci ten vytváří novou instanci objektuobjektu

Page 54: Základy programování v JavaScriptu

objektyobjekty

• definice „objektu“ tvoří definice „objektu“ tvoří prototypprototyp, jakýsi obecný , jakýsi obecný model pro tvorbu kopií (instancí)model pro tvorbu kopií (instancí)

• prototypovým objektům lze přiřadit funkce, které prototypovým objektům lze přiřadit funkce, které automaticky dopočítají hodnoty daným objektům automaticky dopočítají hodnoty daným objektům nebo pracují z daty => nebo pracují z daty => metodymetody

• metody jsou dostupné automaticky všem kopiím metody jsou dostupné automaticky všem kopiím (instancím) objektů(instancím) objektů

• POZOR!!POZOR!!• pole (Array) nebo řetězce (String) jsou v jistém slova pole (Array) nebo řetězce (String) jsou v jistém slova

smyslu objekty – lze jim přiřazovat nové prototypové smyslu objekty – lze jim přiřazovat nové prototypové metody, které fungují u všech instancí typu pole metody, které fungují u všech instancí typu pole nebo stringnebo string

Page 55: Základy programování v JavaScriptu

objektyobjekty

Page 56: Základy programování v JavaScriptu

objektyobjekty

• nové instance se vytváří pomocí nové instance se vytváří pomocí konstruktoru:konstruktoru:

mujobdelnik = new Obdelnik (10,10);mujobdelnik = new Obdelnik (10,10);

výpis se provede definovanou metodou výpis se provede definovanou metodou toString();toString();

mujobdelnik.toString();mujobdelnik.toString();

Page 57: Základy programování v JavaScriptu

PolePole

struktura polístruktura polí

metody pro práci s polimetody pro práci s poli

Page 58: Základy programování v JavaScriptu

PolePole

Page 59: Základy programování v JavaScriptu

metody pro práci s polimetody pro práci s poli

Page 60: Základy programování v JavaScriptu

metody pro práci s polimetody pro práci s poli

Page 61: Základy programování v JavaScriptu

metody pro práci s polimetody pro práci s poli

Page 62: Základy programování v JavaScriptu

metody pro práci s polimetody pro práci s poli

Page 63: Základy programování v JavaScriptu

metody pro práci s polimetody pro práci s poli

• v dokumentu jsou pole obrázků, odkazů, v dokumentu jsou pole obrázků, odkazů, kotev, formulářů apod.kotev, formulářů apod.

Page 64: Základy programování v JavaScriptu

Regulární výrazyRegulární výrazy

vyhledávání řetězcůvyhledávání řetězců

nahrazování znakůnahrazování znaků

zobecnění řetězcůzobecnění řetězců

Page 65: Základy programování v JavaScriptu

Regulární výrazyRegulární výrazy

• objekt popisující vzor znakůobjekt popisující vzor znaků• používá se na vyhledávání znaků v řetězcíchpoužívá se na vyhledávání znaků v řetězcích• regulární výrazy se zapisují pomocí lomítekregulární výrazy se zapisují pomocí lomítek

var regular = /.$/var regular = /.$/

//budou se hledat řetězce, které končí tečkou//budou se hledat řetězce, které končí tečkou

var find = /\s\s/ var find = /\s\s/

//budou se hledat místa se dvěma mezerami//budou se hledat místa se dvěma mezerami

Page 66: Základy programování v JavaScriptu

Regulární výrazyRegulární výrazy

Page 67: Základy programování v JavaScriptu

Regulární výrazyRegulární výrazy

Page 68: Základy programování v JavaScriptu

Klientský JavaScriptKlientský JavaScript

JavaScript v prohlížečiJavaScript v prohlížeči

Page 69: Základy programování v JavaScriptu

objektová strukturaobjektová struktura

• nezapomeňte, že vše probíhá v okně (objekt nezapomeňte, že vše probíhá v okně (objekt Window), ve kterém je dokument (objekt Window), ve kterém je dokument (objekt Document), který je tvořen Formuláři Document), který je tvořen Formuláři (Forms), Odkazy (Links), obrázky (Links), (Forms), Odkazy (Links), obrázky (Links), záložkami (Anchor) a dalšími prvkyzáložkami (Anchor) a dalšími prvky

Page 70: Základy programování v JavaScriptu

ovladače událostí?ovladače událostí?

• dynamickédynamické znamená měnící se znamená měnící se• interaktivníinteraktivní znamená reagující na činnost znamená reagující na činnost

uživateleuživatele• událostiudálosti v okně nastávají v případech – v okně nastávají v případech –

změní se velikost, nahraje se dokument, změní se velikost, nahraje se dokument, kurzor najede nad prvek, něco se změní…kurzor najede nad prvek, něco se změní…

• ovladače událostíovladače událostí – syntaxe, které sledují – syntaxe, které sledují výše uvedené změnyvýše uvedené změny

Page 71: Základy programování v JavaScriptu

implementace do HTMLimplementace do HTML

• pomocí tagu pomocí tagu <script></script><script></script>• pro validitu je lepší uvést tento kódpro validitu je lepší uvést tento kód

<script type=„text/javascript“<script type=„text/javascript“..kódkód..</script></script>

• je možné vládat soubor typu .jsje možné vládat soubor typu .js<script type=„text/javascript“ src=„soubor.js></script><script type=„text/javascript“ src=„soubor.js></script>

Page 72: Základy programování v JavaScriptu

objekt windowobjekt window

okna, jejich vlastnosti a metody okna, jejich vlastnosti a metody práce s oknypráce s okny

Page 73: Základy programování v JavaScriptu

window - vlastnostiwindow - vlastnosti

• okna, ve kterém se otevírá dokumentokna, ve kterém se otevírá dokument

Page 74: Základy programování v JavaScriptu

window - metodywindow - metody

Page 75: Základy programování v JavaScriptu

window – metody open(), blur(), focus()window – metody open(), blur(), focus()

• setInterval()setInterval() – spouští činnosti v určitém – spouští činnosti v určitém intervaluintervalu

• setTimeout()setTimeout() – spuští činnost po určité době – spuští činnost po určité době

Page 76: Základy programování v JavaScriptu

setIntervalsetInterval

Page 77: Základy programování v JavaScriptu

metodymetody scroolby(), moveBy(), resizeBy(); scroolby(), moveBy(), resizeBy();

Page 78: Základy programování v JavaScriptu

window – ovladače událostíwindow – ovladače událostí

Page 79: Základy programování v JavaScriptu

ovladač události ovladač události onerroronerror

• nastane-li chyba vyhodí chybunastane-li chyba vyhodí chybu• funguje jen v některých prohlížečích – v IE se funguje jen v některých prohlížečích – v IE se

primárně spouští vlastní chybové oknoprimárně spouští vlastní chybové okno

Page 80: Základy programování v JavaScriptu

onerror – implementace do HTMLonerror – implementace do HTML

Page 81: Základy programování v JavaScriptu

documentdocument

dokument v okně, vlastnosti, dokument v okně, vlastnosti, metody práce s dokumenty, metody práce s dokumenty,

ovladače událostíovladače událostí

Page 82: Základy programování v JavaScriptu

documentdocument

Page 83: Základy programování v JavaScriptu

links[] links[]

• pole obsahující všechny odkazy v html pole obsahující všechny odkazy v html dokumentudokumentu

Page 84: Základy programování v JavaScriptu

úkolúkol

• změňte výše uvedenou funkci tak, aby nejen změňte výše uvedenou funkci tak, aby nejen vypisovala odkazy, ale učinila je skutečnými vypisovala odkazy, ale učinila je skutečnými odkazyodkazy

Page 85: Základy programování v JavaScriptu

img []img []

• pole obsahující všechny obrázkypole obsahující všechny obrázky• new Image(x,y).src=url;new Image(x,y).src=url;– konstruktor objektu Image – neumístí se na konstruktor objektu Image – neumístí se na

obrazovku, ale načte se do paměti – urychlí se obrazovku, ale načte se do paměti – urychlí se nahrávánínahrávání

Page 86: Základy programování v JavaScriptu

implementace do htmlimplementace do html

Page 87: Základy programování v JavaScriptu

forms[]forms[]

• pole, které obsahu všechny formuláře v pole, které obsahu všechny formuláře v dokumentudokumentu

• pole pole forms[]forms[] obsahují prvky obsahují prvky elements[]elements[]• na prvky polí se lze odkazovat i pomocí na prvky polí se lze odkazovat i pomocí

pojmenovaných atributůpojmenovaných atributů• u tagů zavedeme atribut name=„“ a poté se u tagů zavedeme atribut name=„“ a poté se

odkazujeme:odkazujeme:document.[nazevprvku].valuedocument.[nazevprvku].value

Page 88: Základy programování v JavaScriptu

úkolúkol

• zapište příklad a modifikujte jej – místo pole zapište příklad a modifikujte jej – místo pole použijte atributy použijte atributy namename

Page 89: Základy programování v JavaScriptu

hodinyhodiny


Recommended