Programování v jazyce JavaScript

Podobné dokumenty
Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Programování v jazyce JavaScript

Jazyk C# a platforma.net

JavaScript 101. "Trocha života do statických stránek"

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

Více o konstruktorech a destruktorech

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Programování v PHP. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze. Další možnosti formulářů

!!Via!AUREA,!s.r.o.!

8 Třídy, objekty, metody, předávání argumentů metod

Mělká a hluboká kopie

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

Definice funkcí a procedur. Mnoho operací provozujeme opakovaně, proto je hloupé programovat je při každém použití znovu.

Je n O(n 2 )? Je n 2 O(n)? Je 3n 5 +2n Θ(n 5 )? Je n 1000 O(2 n )? Je 2 n O(n 2000 )? Cvičení s kartami aneb jak rychle roste exponenciála.

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Základy objektové orientace I. Únor 2010

NA CO SI DÁT POZOR V JAVASCRIPTU? Angular.cz

Název Live prez Sear enta Maps

Funkce, intuitivní chápání složitosti

Ajax - úvod. Klíčové pojmy: Ajax, skriptování na straně klienta a serveru, objekt XMLHttpRequest, DOM model.

PŘEHLED A MOŽNOSTI VYUŽITÍ WEBOVÝCH MAPOVÝCH SLUŽEB

Úvod do programování. Lekce 5

HTML - Úvod. Zpracoval: Petr Lasák

Mgr. Vlastislav Kučera lekce č. 2

Mgr. Vlastislav Kučera přednáška č. 2

Formuláře. Internetové publikování. Formuláře - příklad

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Programování v Pythonu

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Jazyk C# a platforma.net

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

WWW a HTML. Základní pojmy. Ivo Peterka

Přetěžování operátorů

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Algoritmizace a programování

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

Jazyk C# - přístup k datům

IRAE 07/08 Přednáška č. 1

Programovani v Maplu Procedura

Inovace bakalářského studijního oboru Aplikovaná chemie

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Koláčky, sezení. Martin Klíma

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Programování v jazyce JavaScript


PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ

Printris. Hra Printris je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Vstupní požadavky, doporučení a metodické pokyny

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Seminář Java II p.1/43

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Abstraktní třídy, polymorfní struktury

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Jazyk C++ I. Šablony 2

Programování v C++ 1, 1. cvičení

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

7. Datové typy v Javě

přetížení operátorů (o)

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

PROGRAMOVÁNÍ V C++ CVIČENÍ

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Sada 1 - PHP. 03. Proměnné, konstanty

Uspořádání klient-server. Standardy pro Web

Maturitní otázky z předmětu PROGRAMOVÁNÍ

NPRG030 Programování I, 2015/16 1 / :25:32

Zápis programu v jazyce C#

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Funkce, podmíněný příkaz if-else, příkaz cyklu for

12. Globální metody MI-PAA

Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++

Dědění, polymorfismus

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Tvorba klientských skriptů v jazyce Java Script

NSWI096 - INTERNET JavaScript

Pear - hruška Systém pro implementaci a distribuci znovupoužitelných komponent (v PHP) Strukturovaná knihovna open-source (PHP) skriptů Systém pro dis

Rekurzivní algoritmy

Struktura programu v době běhu

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

PROGRAMOVÁNÍ V SHELLU

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Formuláře. Internetové publikování

PB161 Programování v jazyce C++ Přednáška 9

Transkript:

Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Funkce podrobněji BI-JSC Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti P. Štěpán PHP BI-PHP, výpis 5 1/5

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <h1>funkce detaily</h1> <script type="text/javascript"> // funkce jsou v JavaScriptu objekty - maji vlastnosti a metody // "klasicka" definice funkce function soucet(s1,s2){ // vlastnost length FUNKCE (nikoli arguments) urcuje // pocet DEKLAROVANYCH parametru function soucet(s1,s2){ // test, zda pocet parameru pri volani se rovna deklaraci if (soucet.length!= arguments.length){ alert("moulo! Zadej 2 parametry!!"); return; // funkce lze volat jako procedura - bez pouziti navratove hodnoty // soucet(1,2,3); // funkci (DEFINOVANOU FUNKCNIM VYRAZEM) nelze volat pred // zpracovanim definice: // alert(soucetvar(2,3)); // chyba // deklarace funkce pomoci funkcniho vyrazu a prirazeni do promenne // (funkce lze prirazovat!!) var soucetvar = function(s1,s2){ // bez jmena funkce!! ; // strednik - inicializace promenne // alert(soucetvar(2,3)); // volani pomoci promenne /* Pri definici funkce pomoci funkcniho vyrazu lze funkci volat az PO vykonani funkcniho vyrazu. Pro klasicke defininice kdekoli v provadecim kontextu. Definice funkce pomoci konstruktoru funkce, ktery ma libovolny pocet parametru. Posledni z nich je telo funkce, predchozi jsou jeji parametry. Neni efektivni (dvoji interpretace), ale nazorne: */ var soucet = new Function("s1","s2","return s1 + s2"); // alert(soucet(3,4)); P. Štěpán PHP BI-PHP, výpis 5 2/5

// Nazvy funkci jsou pointery na funkce - i pro klasicke definice; // Proto nelze provadet pretezovani - do pointeru priradi ukazatel // na novou definici // Jako u objektu lze mit pro jednu funkci vice pointeru (nazvu): function Dvakrat(m){ return m + m; var Dbl = Dvakrat; // alert(dbl(3)); // funkce jsou promenne (pointery) - lze je tedy predavat jako // parametry dalsich funkci, nebo z nich vracet: function volejfunkci(funkce,p1,p2){ return funkce(p1,p2); function rozdil(p1,p2){ return p1 - p2; function soucin(p1,p2){ return p1*p2; // alert(volejfunkci(rozdil,6,2)); // alert(volejfunkci(soucin,6,2)); // funkce lze z funkce i vracet function vytvorfunkci(koef1,koef2){ return function(x){ return koef1*x + koef2; var vytvorena1 = vytvorfunkci(2,0); var vytvorena2 = vytvorfunkci(1,1); // alert(vytvorena1(3) + "; " + vytvorena2(3)); // alert(vytvorfunkci(2,0)(3)); // zkraceny zapis // Parametry funkci se v JavaScriptu predavaji VZDY HODNOTOU!! // Plati to i pro pointery / funkce se preda jeho kopie! // Pojmenovane parametry, ktere nebyly pri volani prirazeny // maji automaticky hodnotu undefined // interni objekty funkci this a arguments // this - odkaz na objekt (obor platnosti) ve kterem je dana funkce // provozovana (global popr dalsi funkce) P. Štěpán PHP BI-PHP, výpis 5 3/5

window.jmeno = "Franta"; // globalni objekt v prohlizeci // var jmeno = "Franta"; // totez var clovek = {jmeno: "Eva"; // definice objektu pomoci literalu function vypisjmeno(){ alert(this.jmeno); // this se nastavi az pri volani funkce!! // vypisjmeno(); // Franta - jsme v globalnim kontextu clovek.vypis = vypisjmeno; // prirazenim funkce definuji metodu // clovek.vypis(); // Eva - volam v kontextu objektu clovek // metody funkci apply a call // volani funkce uvnitr zvoleneho oboru platnosti (nastaveni this) // apply - 1. parametr - obor platnosti, 2. - pole (parametry) // nebo argumentes function suma(p1,p2){ return p1 + p2; function volej1(n1,n2){ return suma.apply(this, arguments); // pouziti s arguments function volej2(n1,n2){ return suma.apply(this, [n1,n2]); // parametry jako pole function volej(n1,n2){ return suma.call(this, n1,n2); // v call parametry jako seznam // alert(volej1(2,3)); // 5 /* hlavni pouziti apply a call - nastaveni oboru platnosti bez prirazeni funkce jako metody objektu vypisjmeno(); Franta vypisjmeno.call(this); Franta (jsme na urovni global) vypisjmeno.call(window); Franta (jsme na urovni global) vypisjmeno.call(clovek); Eva */ P. Štěpán PHP BI-PHP, výpis 5 4/5

// vlastnost callee objektu arguments (odkaz na funkci, ktera // vlastni objekt arguments - na danou funkci). Mozno používat // napr. pri prejmenovani rekurzivni funkce: function faktorial(n){ if (n <= 1) return 1; else // return n*faktorial(n-1); // pozor - faktorial mohu // prepsat!! Nefunguje pri // prejmenovani funkce! return n*arguments.callee(n-1); // zde nevystupuje jmeno // funkce!! var fakt = faktorial; faktorial = function(){ return 2; alert(fakt(4)); </script> </body> </html> // redefinoval jsem faktorial // 24 - OK - nezavisi na jmenu P. Štěpán PHP BI-PHP, výpis 5 5/5