- Switch
- For-in
- Try, Catch + Throw
Po dlouhé době přicházím s pokračováním kurzu JavaScriptu. V dnešní lekci vám ukážu použití příkazu switch, dále vám osvětlím připojení nového příkazu in do již známé smyčky for. Nakonec vám ukážu využití dvojice příkazů try a catch spolu s třetím příkazem throw.
Switch
Switch je podobný smyčce if/else s jednou odlišností. Umožňuje vybrat a spustit některý z více úseků kódu v závislosti na vstupní hodnotě. Použítí switch vám ukážu na příkladě s vypsáním aktuálního dne v týdnu.
<script language="JavaScript" type="text/javascript">
var d = new Date() //Date() automaticky zjistí dnešní datum
datum = d.getDay() //getDay() automaticky zjistí, co je za den
switch(datum){
case 0: document.write("Dnes je neděle."); //Týden začíná nedělí
break;
case 1: document.write("Dnes je pondělí.");
break;
case 2: document.write("Dnes je úterý.");
break;
case 3: document.write("Dnes je středa.");
break;
case 4: document.write("Dnes je čtvrtek.");
break;
case 5: document.write("Dnes je pátek.");
break;
case 6: document.write("Dnes je sobota.");
break;
default: document.write("Došlo k chybě!");
}
</script>
Malá ukázka:
Vysvětlivky:
- case 0 – case vychází z hodnoty, kterou určuje proměnná datum, tedy je-li neděle, hodnota proměnné datum bude 0 a vykoná se příkaz za case s hodnotou 0
- default – vykoná se, pokud hodnota proměnné neodpovídá ani jedné z hodnost case (v tomto případě by se to nemělo stát)
- break – tento příkaz už znáte, jakmile skript najde hodnotu case shodnou s hodnotou proměnné, ukončí se cyklus
For-in
Příkaz in vám může pomoci vypsat prvky nějakého pole pomocí smyčky for. Myslím, že jeho užití nejlépe pochopíte z příkladu.
<script language="JavaScript" type="text/javascript">
var x;
jmena = new Array();
jmena[0] = "Alík"; //I takto
jmena[1] = "Ben"; //se dají
jmena[2] = "Rolf"; //zapisovat
jmena[3] = "Meggi"; //prvky pole
document.write("Jména našich psů jsou: <br />");
for(x in jmena){
document.write(jmena[x] + "<br />");
}
</script>
Myslím, že v tomto kódu je nové akorát in a nic jiného není třeba vysvětlovat.
Try, Catch + Throw
Příkazy try a catch spolu s příkazem throw umožňují například propojení dvou konstrukcí if nebo else if tak, že výstupní hodnota z první smyčky je použiza jako vstupní hodnota do druhé konstrukce. Takže když splníte jednu z podmínek v bloku try (každá z nich má hodnotu throw - určuje příkaz, který bude vykonán), tak výsledek jeho vyhodnocení je odeslán do bloku catch, kde se znovu vyhodnocuje a provádí se konečné výsledné reakce. Více viditelné to je na příkladu.
<script language="JavaScript" type="text/javascript">
var x = prompt("Zadejte číslo mezi 10 a 20:","");
try{
if(x>20){
throw "ChybaMoc";
}
else if(x<10){
throw "ChybaMalo";
}
}
catch(chyba){
if(chyba == "ChybaMoc"){
alert("Vámi zadané číslo je moc velké!");
}
if(chyba == "ChybaMalo"){
alert("Vámi zadané číslo je moc malé!");
}
}
</script>
Zde podle mě také není nic nového kromě výše uvedených příkazů, takže není co vysvětlovat.
Úkol
Vytvořte 2 pole prvků (1. pole bude obsahovat 3 mužská jména a 2. pole bude obsahovat 3 ženská jména. Dále okno prompt, kterým získáte hodnotu. Když bude hodnota větší jak 50, vypíše se pole s mužskými jmény, když menší jak 50, vypíše se pole s ženskými jmény (použijte cyklus for s příkazem in a v určování podmínek použijte příkazy try, catch a throw).