Otázka: Javascript
Předmět: Informatika
Přidal(a): Shadow_area
- multiplatformní, objektově orientovaný skriptovací jazyk
- používá se jako interpretovaný programovací jazyk pro WWW stránky
- k ovládání různých interaktivních prvků GUI (tlačítka, textová políčka) nebo animace
- syntaxe patří do rodiny C/C++/Java, jinak s Javou nemá nic společného
- program se spustí až po stažení WWW stránky z internetu ->spouští se na straně klienta
- nemůže pracovat se soubory
Syntaxe
- celý skript je ohraničen párovým tagem <script>
Dynamické přiřazení typů – proměnné může být přiřazena hodnota číselného typu, později i řetězce
Datové typy
- čísla (i desetinná)
- logické – true, false
- řetězce
- null – prázdná hodnota
Konverze datových typů
- jde o jazyk „loosely typed“ – nemusí se specifikovat typ dat dané proměnné
- typ je automaticky zkonvertován dle potřeby při běhu skriptu
Proměnné
- je case-sensitive – citlivý na malá a velká písmena
- začíná písmenem nebo _ (podtržítkem)
Speciální znaky v řetězci
- \b backspace
- \f form feed
- \n new line
- \r carriage return
- \t tab character
Escapování znaku
- Zpětným lomítkem „ \“ \“ „
Ukázka události:
<script>
function napis(){
document.write(„ahoj“);
}
</script>
<input type=“button“ onClick=“napis();“ value=“napiš ahoj“ />
Příkazy, podmínky, cykly
- Var proměnná = hodnota – odentifikátor proměnné
- Break, continue – přerušení smyčky
- Return – návrat z funkce
- If, else; switch, case, break, default; – podmínky
- While () {}; Do {} while(); for(;;){} – cykly
For – in
- For (var i in Pole/Objekt) {}; – vypíše objekty v poli nebo vlastnosti objektu
Příkaz Label
- cast_a: {}; continue cast_a; nebo break cast_a – skočí na řádek a opakuje část_a
Příkaz with
- with(Objekt){parametr = neco; } je stejný jako parametr = neco ;
Objekty
function osoba(jmeno, vek, pohlavi) {
this.jmeno = jmeno
this.vek = vek
this.pohlavi = pohlavi
this.vypisUdaje = function() {
document.write(this.jmeno + „, „ + this.vek);
}
}
var martin = new osoba(„Martin“, 33, „M“);
martin.vypisUdaje();
Prototype – přidá funkci nebo proměnnou do již vytvořených objektů
osoba.prototype.datumNarozeni = null;
martin.datumNarozeni = „19.9.1999“;
Objekt Math
- abs(x), log(x), max(x, y), min(x, y), pow(a, x), sqrt(x), random()
- ceil(x) – zaokrouhlení nahoru
- floor(x) – zaokrouhlení dolů
- round(x) – klasické zaokrouhlení
- cos, sin, tan, acos, asin, atan
- Konstanty – Math.E, Math.PI, Math.LN2, Math.SQRT2
Objekt string
- Řetězec
- var promenna = new string(); – nemusí se používat, stačí napsat var promenna = „To co chci“
- .length – počet znaků v řetězci (length())
- .toUpperCase(), .toLowerCase()
- .toString() – číslo na řetězec – var dva = 2; var text = dva.toString();
- .charAt(n) – vrátí entý znak (počítáno od nuly)
- .substring(a, b) – vrátí znaky od a-pozice po b-pozici
- .substr(a, b) – vrátí b znaků od pozice a
Objekt window
- Vrcholem hierarchie objektů
- location
- .href = „http://…“
- .reload(false) – aktualizuje stránku ze serveru pouze pokud byla změněna
- .reload(true) – aktualizuje stránku ze serveru
- .replace(„http“) – přesměrování
- .hostname – doména
- history
- .back() – načte minulou stránku
- .back(n) – o n stránek zpět
- .forward(n) – o n stránek dopředu
- .go(n) – o n stránek dopředu nebo dozadu (znaménko -)
- navigator
- Zjišťování informací o typu a verzi prohlížeče
- .appName – „Internet Explorer“
- .appVersion
- .javaEnable() – zjišťuje podporu Javy
- .systemLanguage – původní jazyk systému
- .userLanguage – nastavený jazyk OS
- screen
- .height, .width – výška a šířka pracovní plochy
- .availWidth, .availHeight – dostupná velikost
- event
- .clientX, .clientY, .screenX, .offsetX
- .altKey, .ctrlKey, .keyCode
Objekt dokument
- Vše, co je nějakým způsobem spojeno s aktuální stránkou
- Přístup k obrázkům, formulářům, odkazům, barvám …
- .images, .forms, .links, .anchors
- .getElementsByTagName(„body“)[0]
- .getElementsByClassName
- .getElementsByName
- .getElementByID
Objekt Date
- Datum a čas
- var date = new Date(); – proměnná s auktálním datem
- getMonth() + 1 – leden je 0
- .getFullYear()
- .getMonth(), .getDate() – číslo dne v měsící, .getDay() – číslo dne v týdnu
- .getHours(), getMinutes … getMiliseconds()
- .get nebo .set – nastavení
<script>
promenna=new Date();
promenna.setTime(promenna.getTime() + 2 *24*60*60*1000); // + milisekundy
mesic = promenna.getMonth() + 1;//leden je 0
denVMesici = promenna.getDate();
document.write(„Pozítří bude “ + denVMesici + „. “ + mesic + „.“);
</script>