Jaroslav BURDYS 3IT.  Vytvořen Brendanem Eichem ze společnosti Netscape v roce 1995  Nemá nic společného s pr.j. JAVA (snad jen, že jsou oba jazyky.

Slides:



Advertisements
Podobné prezentace
Pro začátek něco lehčího
Advertisements

(instance konkrétní třídy)
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
Základy programování v JavaScriptu
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Programování funkcí v Excelu
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
Dynamické dokumenty na straně klienta Informatika pro ekonomy I přednáška 5, 6.
Dynamické dokumenty na straně klienta Informatika pro ekonomy I přednáška 5, 6.
Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží.
Programování v Pascalu Přednáška 5 RNDr. Hana Havelková.
Konstanty jsou datové objekty jejich hodnoty nelze v programu měnit Deklarace Const jméno = hodnota Příklad: Textový řetězec ZPRAVA Const ZPRAVA = “Zadej.
Algoritmizace a programování Datové typy v Delphi - 05
C# pro začátečníky Mgr. Jaromír Osčádal
Programování v C++ Cvičení.
Algoritmizace a programování
Druhé cvičení Vytváření identifikátorů Datové typy
Programování v Pascalu Přednáška 7
JavaScript - 5. část Pole Ústav automatizace inženýrských úloh a informatiky FAST VUT v Brně 0U2 - Základy informatiky a výpočetní techniky 2.
Materiály k přednášce Úvod do programování Ondřej Čepek.
J a v a Začínáme programovat Lucie Žoltá pole řetězec debugr.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
Hashovací tabulky v Lua
PHP PHP – základy syntaxe (část 1) - 03 Mgr. Josef Nožička IKT PHP
Procedury a funkce Základní charakteristika a použití v programu.
Seminář C++ 9. cvičení Šablony Ing. Jan Mikulka. Šablony ► template – vzory, podle kterých může překladač tvořit skupiny podobných tříd nebo funkcí, které.
Deklarace Radim Štefan. 2 Použité zkratky BP – Borland Pascal De – Delphi.
Třída jako zdroj funkcionality
Datové typy a práce s nimi
ActionScript Moderní počítačové aplikace. Charakteristika Je odvozen od JavaScriptu Integruje do Flashe interaktivní ovládání Umožňuje vytvořit přehledné.
Počítače a programování 1 8.přednáška. Obsah přednášky Řetězce - deklarace a vytvoření Základní metody pro práci s řetezci Znaky - třída Character Základní.
Počítače a programování 1
Proměnné v PHP Každý programovací jazyk pracuje s nějakými hodnotami. To, do čeho se tyto hodnoty ukládají, se nazývá proměnné. Každý programovací jazyk.
JavaScript Podmínky, cykly a pole.
Cvičení.
Návrh a tvorba WWW Cvičení 4
Konstanty u jsou datové objekty u jejich hodnoty nelze v programu měnit u Deklarace Const jméno = hodnota Příklad: Textový řetězec ZPRAVA Const ZPRAVA.
VISUAL BASIC PRALG.
Datové typy a struktury
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Úvod do PHP IZI 228.
Uživatelem definované typy Ing. Lumír Návrat  katedra informatiky, A 1018 
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
4. Typ pole 4.1 Jednorozměrná pole
Počítače a programování 1 2.přednáška. Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Jaroslav BURDYS 4IT.  Čistě OOP jazyk (objektově orientovaný programovací jazyk)  Objekty založeny na tzv. objektových typech: Struktura (struct)
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ ERIK KRÁL.
Programování v jazyce C++ Speciality jazyka C++, úvod do OOP.
Programovací jazyk JavaScript
Úvod do JavaScriptu Jaroslav BURDYS 4T
Programovací jazyk JavaScript
Výukový materiál zpracován v rámci projektu
Vzorové řešení zápočtového testu
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Algoritmizace a programování
Ovládání interaktivity
TNPW1 JavaScript Ing. Jiří Štěpánek.
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Tvorba webových stránek
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
CU01 Informatika II 2/13 Základy algoritmizace
Transkript prezentace:

Jaroslav BURDYS 3IT

 Vytvořen Brendanem Eichem ze společnosti Netscape v roce 1995  Nemá nic společného s pr.j. JAVA (snad jen, že jsou oba jazyky založené na pr.j. C)  Název použit pouze z marketingových důvodů (Java byla v té době již poměrně populární)  Dnes jeden z nejrozšířenějších pr.jazyků

 Nativně určen pro práci ve webovém prohlížeči (kód je vykonáván přímo prohlížečem, není třeba pluginu => urychlení)  Primárně tedy klient-side skriptovací jazyk (dnes lze i server-side p-cí knihovny Node.js)  Původně čistě skriptovací jazyk se vyvinul v poměrně plnohodnotný programovací jazyk.

 Interaktivita webových stránek  Kontrola formulářů  Nekonečné scrollování stránek  Parallaxe a jiné animace (knihovna Parallax.js)  Ukázka: matthew.wagerfield.com/parallax/matthew.wagerfield.com/parallax/  Vývoj webových 2D i 3D her běžících v prohlížeči (knihovna 3D.js)  Ukázka: helloracer.com/racer-s/helloracer.com/racer-s/  Gameengine Unity3D a interaktivní 3D applikace:  Ukázka:  IoT (Internet věcí), roboti, wearable technika…  Vývoj mobilních aplikací (technologie HTML5, PhoneGap/Cordova) (mnoho knihoven: JQuery.js, Angular.js...)

 Objektově orientovaný skriptovací jazyk (objekty založené na prototypech, nikoliv na třídách!)  Multiplatformní  Multiparadigmatický:  imperativní i deklarativní  procedurální i funkcionální  Specifikace ECMAScript (stejně jako ActionScript)

 // - toto je jednořádkový komentář  /* - toto je mnohem delší text a proto je uzavřen do víceřádkového komentáře - */

 Number (dle specif. ECMAScript 64bitové s dvojitou přesností ) =>  Celá čísla (int, short …)  Reálná čísla (float, double …)  Znaménková (signed …)  Kladné a záporné nekonečno  NaN (Not a Number)  String  Řetězce (string)  Znaky (char)  Boolean  true  false  Undefined (neinicializované proměnné)  undefined  Null  null (inicializuje proměnné jako: „nemá žádnou hodnotu“, narozdíl od ´undefined´ se při vyhodnocování výrazů imlicitně konvertuje na nulu a nevyvolá tak chybové hlášení)  Object (=kolekce vlastností: předchozí datové typy, jiné objekty, funkce) ZJIŠTĚNÍ DATOVÉHO TYPU PROMĚNNÉ/VÝRAZU typeof();

 Implicitní:  4 + „5“ // => „4“ + „5“ => „45“  null + 5 // => => 5  Explicitní:  Number(false); // => 0  Number(null); // => 0  Number(„0“); // => 0  Number(„ “); // => 0

 Příklady, kdy se vrací NaN:  Math.abs(„Jana“) // => NaN  Number(„Jana“) // => NaN  Použití isNaN(): isNaN(NaN); // => true isNaN(undefined); // => true isNaN({ }); // => true isNaN(“Jana”); // => true isNaN(“25”); // => false isNaN(true); // => false isNaN(null); // => false isNaN(„“); isNaN(„ „); // => false POZOR !!! var prvni; první = true; první == první; // => true ALE (protože NaN != NaN): první = NaN; první == první; // => false

 Matematické: +, -, *, /, %  Relační:  ==, !=, =, 4 == „4“; //=> true  ===, !== 4 === „4“; //=> false, musí se shodovat i datovým typem!  Logické: &&, II,

 Slabě typovaný jazyk ( datový typ se určuje za běhu podle toho, jakého typu je aktuální hodnota v proměnné ):  var Identifikator; Identifikator = 58; //číslo Identifikator = „Jana se má fajn“; //řetězec Identifikator = [ ]; //pole: literál prázdného pole Identifikator = { }; //objekt: literál prázdného objektu Identifikator = function(){ /* zde následuje tělo f-ce */ }; //funkce: tzv.deklarace výrazem p-cí tzv.anonymní (nepojmenované) f-ce, volání této f-ce by pak bylo: Identifikator();  Pozor na tzv. ZDVIHÁNÍ PROMĚNNÝCH

 Vlastnosti:  Mutabilní => při deklaraci nezadáváme rozsah pole  Heterogenní var MojePole = [25, “Jana”, [], {}, true];  Deklarace:  1) var MojePole = new Array(); // NEDOPORUČUJE SE  2) var MojePole = [25, “Jana”, [], {}, true]; // literál pole  Použití:  1) přes indexy (začíná od 0)  2) asociativně (přes klíče) //pak je ale lépe použít objekty !

 Deklarace:  1) deklarací: function Identifikator() { /* zde následuje tělo f-ce */}  2) výrazem: var Identifikator = function(){ /* zde následuje tělo f-ce */ }; volání: Identifikator();  3) konstruktorem: //nedoporučuje se! var Identifikator = new Function(„ /* zde následuje tělo f-ce */ “); volání: Identifikator();  Opět pozor na tzv. ZDVIHÁNÍ PROMĚNNÝCH => doporučuje se varianta 1)

 Podmínky  if() else  Cykly  while()  do while();  for()  for( var klic in objekt/pole)

 Objekty jsou v JavaScriptu vlastně kolekce (seznamy) vlastností objektu =>

var MujObjekt = {}; Toto je první způsob vytvoření objektu: pomocí literálu objektu vytváříme přímo konkrétní objekt (tedy rovnou instanci) Druhý způsob pomocí prototypu (konstruktoru daného typu) viz dále

 Objekty jsou v JavaScriptu vlastně kolekce (seznamy) vlastností objektu => var MujObjekt = {}; Toto je první způsob vytvoření objektu: toto je prázdný objekt

 Objekty jsou v JavaScriptu vlastně kolekce (seznamy) vlastností objektu => var MujObjekt = { vlastnost01: hodnota, vlastnost02: hodnota, /* toto je metoda */ vlastnost03: funkce() }; Vlastnosti jsou v seznamu v těle objektu zaváděny ve dvojicích jako klíč:hodnota Mohou být jakéhokoliv typu a to včetně funkcí - tzv. metod objektu (klíč:funkce)

 Objekty jsou v JavaScriptu vlastně kolekce (seznamy) vlastností objektu => var MujObjekt = { vlastnost01: hodnota, vlastnost02: hodnota, /* toto je metoda */ vlastnost03: funkce() }; Vlastnosti jsou v seznamu v těle objektu zaváděny ve dvojicích jako klíč:hodnota Mohou být jakéhokoliv typu a to včetně funkcí - tzv. metod objektu

 Uchování dat neobjektově: var napojDruh = „káva“; var napojCena = 25; var napojHorky = true;  Uchování dat objektově: var napoj = { druh: „káva“, cena: 25, horky: true }; V těle objektu je seznam vlastností typu: KLÍČ : HODNOTA

 Uchování dat neobjektově: var napojDruh = „káva“; var napojCena = 25; var napojHorky = true;  Uchování dat objektově: var napoj = { druh: „káva“, cena: 25, horky: true }; V těle objektu je SEZNAM vlastností typu: KLÍČ : HODNOTA

 Uchování dat objektově s metodou: var napoj = { druh: „káva“, cena: 25, horky: true ohrat : function(){ if (!napoj.horky) { napoj.horky=true; alert(“Váš nápoj byl ohřán”); } } }; Stejně se tvoří i metody objektu: KLÍČ : FUNKCE

var napoj = { druh: „káva“, cena: 25, horky: true, ohrat: function(){ if (!napoj.horky) { napoj.horky=true; alert(“Váš nápoj byl ohřátý”); } } };  Přes tečkovou notaci (jako u objeků): napoj.cena = 30; napoj.ohrat();  Přes klíče (jako u asociativního pole): napoj[”cena”] = 30; //v tomto případě lze jako klíč použít proměnnou!

 JavaScript nepoužívá k vytváření instancí objektů třídy ale tzv. prototypy  Jedná se o konstruktor objektu – tj. f-ce, která se volá při vytváření objektu a může zároveň inicializovat jeho položky již v době jeho vzniku

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP

function Friend(jmeno,vek){ this.jmeno = jmeno; this.vek = vek; this.muz; }; var marek = new Friend(”Marek”,15); marek.muz=true; var lenka = new Friend(”Lenka”, 25); lenka.muz=false; var jan = new Friend(”Jan”, 10); jan.muz=true; var marek = { jmeno:”Marek”, vek:15, muz:true }; var lenka = { jmeno:”Lenka”, vek:25, muz:false }; var jan = { jmeno:”Jan”, vek:10, muz:true }; Přímé vytvoření pomocí literálu objektu Sériové vytvoření instancí pomocí prototypu Friend() PROTOTYP OBJEKT1OBJEKT1 OBJEKT2OBJEKT2 OBJEKT3OBJEKT3 INSTANCE PROTOTYPU 1 INSTANCE PROTOTYPU 2 INSTANCE PROTOTYPU 3