JavaScript/Juandev/W3Schools: Porovnání verzí

Smazaný obsah Přidaný obsah
Juandev (diskuse | příspěvky)
→‎Hodina 9: část hotova
Juandev (diskuse | příspěvky)
→‎Hodina 9: upr; hotovo
Řádek 174:
*dnes o podmínkových příkazech:
**'''if''' – spustí kód pokud (=''if'') je podmínka ''true''. Takže například vítací skrypt: <source lang="javascript">var d = new Date();</source><source lang="javascript">var time = d.getHours();</source><source lang="javascript">if (time < 8) { document.write("Dobré ráno!"); }</source> Čili vytvářím proměnnou „d“, kde „Date“ je objekt. Další proměnnou je „time“, který definuji jako objekt proměnné „d“ a používám metodu „getHours()“ pro získání aktuální hodiny číslem. Samozřejmě, jelikož je JavaScript jazyk operující ve vyhledávači '''je to lokální čas počítače''', nikoliv čas na severu. Následně dám podmínku, že proměnná „time“ musí být '''menší než 8'''. Pokud tato podmínka nastane, můžu uživatele přivítat hláškou '''„Dobré ráno“!''' Je třeba si ale také uvědomit, že tento skrypt bere v potaz jen celé hodiny. Čili pokud chci dostat do hry minuty musím použít metodu '''getMinutes()'''. Něco složitějšího: <source lang="javascript">var d = new Date();</source><source lang="javascript">var time = d.getHours();</source><source lang="javascript">var minute = d.getMinutes();</source><source lang="javascript">if (time > 4 && time <= 8 ) { document.write("Dobré ráno!"); }</source><source lang="javascript">if (time > 8 && time <= 11 ) { document.write("Dobrý den! "); }</source><source lang="javascript">if (time >= 11 && time <= 14 ) { document.write("Dobrou chuť!"); }</source><source lang="javascript">if (time == 15 && minute <= 30 ) { document.write("Po jídle siesta:-)"); }</source> Čili tady vidíme takový dlouhý skrypt s několikanásobným použitím podmínkového příkazu '''if'''. Je třeba si všimnout několika věcí. Jednat jsou zde vymezeny určité rozsahy. To znamená „(time > 4 && time <= 8 )“ znamená, že se berou v potaz všechny hodniny větší než 4 a všechny hodiny menší nebo rovné 8. Je to tedy průnik čísel 5, 6, 7, 8, 9, 10 atd. a čísel 8, 7, 6, 5, 4, 3 atd. Což dává '''5, 6, 7, 8'''. Neřeší se zde minuty. Čili když máme '''7:27''', tak to hlásí „Dobré ráno!“ protože je to v průniku '''7'''. A stejně tak 8:00 a 8:57 stále hlásí „Dobré ráno!“ Čili „8:59“ je stále „Dobré ráno!“, kdežto „9:00“ je již „Dobrý den“! Což definuje druhá podmínka. Dále si můžeme povšimnout, že 2. a 3. podmínka se časově překrývají. Proto je v textu za „Dobrý den! “ mezera. Protože v čase od 11:00 do 11:59 se bude zobrazovat „Dobrý den! Dobrou chuť!“ Poslední podmínka pak ukazuje způsob nasazení minut. To znamená, opět hledám průnik dvou proměnných: ''time'' je ''15'', tzn. ''15:00–15:59'' a ''minute'' je ''30–0''. Čili tato podmínka je platná v rozsahu '''15:00–15:30'''. Na závěr jednoduchý skryptík z minulé hodiny: <source lang="javascript">var x = 5;</source><source lang="javascript">if (x === 5) { alert("True")};</source>
**'''if'''…'''else''' – '''pokud''' ('''=if''') je hodnota ''true'', spustí se kód, '''jinak''' ('''=else''') se spustí jiný kód: <source lang="javascript">var d = new Date();</source><source lang="javascript">var time = d.getHours();</source><source lang="javascript">if (time < 8) { document.write("Dobré ráno!"); }</source><source lang="javascript">else { document.write("Dobrý den!"); }</source> Tento skrypt Vám přeje podle času „Dobrý den!“, nebo „Dobré ráno“! Je z něj jasně vidět, že pokud je '''700:5900-->07:0059''' tak se přeje „Dobré ráno!“ a pokud je '''8:00-->23:59''' tak se přeje „Dobrý den“! Čili je to jen ukázka, jinak by se to muselo více rozparcelovat.
**'''if'''…'''else''' '''if'''…'''else''' – stejně tak, jak je možné za sebou seřadit několik '''if příkazů''', je možné za sebou seřadit několik '''if else příkazů'''. Následující skrypt ukazuj 2 if else příkazy za sebou: <source lang="javascript">var d = new Date();</source><source lang="javascript">var time = d.getHours();</source><source lang="javascript">if (time<8) { document.write("Dobré ráno!"); }</source><source lang="javascript">else if (time>=8 && time<18) { document.write("Dobrý den!"); }</source><source lang="javascript">else { document.write("Uááá, kdo mě to budí?!"); }</source>''' Nicméně místo mnohonásobného použití těchto dvou příkazů, je lepší používat ''swich''.''' Dalším učebnicovým příkladem je Random link: <source lang="javascript">var r=Math.random();</source><source lang="javascript">if (r>0.5) { document.write("<a href='http://cs.wikiversity.org'>Wikiverzita</a>"); }</source><source lang="javascript">else { document.write("<a href='http://cs.wiktionary.org'>Wikislovník</a>"); }</source> Definuji proměnou „r“ objektem ''math''. Metoda ''random()'' pak generuje náhodné číslo mezi 0 a 1. Vhledem k tomu, že podmínka je „r>0.5“, pokud je vygenerována 1, tato podmínka platí (je ''true'') a je mi nabídnut odkaz na Wikiverzitu, v druhém případě, kdy je vygenerováno 0, podmínka neplatí (je ''false'', použije se '''else''') a je mi tedy vygenerován odkaz na Wikislovník. Jak asi funguje [[special:random]]? Není to podobné? Abych vymyslel svoje „random“, budu jistě potřebovat ''swich'', tak vzhůru na další lekci!
**'''if'''…'''else''' '''if'''…'''else'''
 
<!--var d = new Date();
== Hodina 10 ==
var time = d.getHours();
if (time<8) { document.write("Dobré ráno!"); }
else if (time>=8 && time<18) { document.write("Dobrý den!"); }
else { document.write("Uááá, kdo mě to budí?!"); }--> Pokračování příště--[[Uživatel:Juan de Vojníkov|Juan de Vojníkov]] 22. 1. 2010, 12:11 (UTC)
 
== Poznámky ==