30. dubna 2022

Struktura kódu

První, co si prostudujeme, jsou stavební bloky kódu.

Příkazy

Příkazy (anglicky statement) jsou syntaktické konstrukce a povely, které provádějí akce.

Už jsme viděli příkaz alert('Ahoj, světe!'), který zobrazuje zprávu „Ahoj, světe!“.

V kódu můžeme mít tolik příkazů, kolik chceme. Příkazy mohou být odděleny středníkem.

Například zde rozdělíme „Ahoj světe“ na dvě zprávy:

alert('Ahoj'); alert('Světe');

Každý příkaz obvykle píšeme na nový řádek, aby kód byl čitelnější:

alert('Ahoj');
alert('Světe');

Středníky

Ve většině případů, kdy je uveden konec řádku, můžeme středník vynechat.

Toto by také fungovalo:

alert('Ahoj')
alert('Světe')

Zde JavaScript interpretuje konec řádku jako „implicitní“ středník. Takové chování se nazývá automatické vkládání středníku.

Ve většině případů nový řádek znamená středník, ale „ve většině případů“ neznamená „vždy“!

Existují případy, v nichž nový řádek neznamená středník. Například:

alert(3 +
1
+ 2);

Tento kód vypíše 6, protože JavaScript sem středník nevloží. Je zřejmé, že jestliže řádek končí znaménkem plus "+", je to „neúplný výraz“, takže středník by byl nesprávný. V tomto případě to bude fungovat tak, jak očekáváme.

Existují však situace, v nichž JavaScript „nedokáže“ vložit středník tam, kde je opravdu zapotřebí.

V takových případech nastanou chyby, které je poměrně těžké najít a opravit.

Příklad chyby

Pokud jste zvědaví na konkrétní příklad takové chyby, zkuste si tento kód:

alert("Hello");

[1, 2].forEach(alert);

O významu hranatých závorek [] a klíčového slova forEach zatím nemusíte přemýšlet. To probereme později. Nyní si jen zapamatujte výsledek kódu: zobrazí Ahoj, pak 1, pak 2.

Nyní odstraníme středník před alert:

alert("Ahoj")

[1, 2].forEach(alert);

Rozdíl oproti výše uvedenému kódu je pouze v jednom znaku: středník na konci prvního řádku chybí.

Když tento kód spustíme, zobrazí se jen první Ahoj (a pak nastane chyba, možná si budete muset otevřít konzoli, abyste ji viděli). Žádná čísla se už nezobrazí.

Je to proto, že JavaScript nepředpokládá středník před hranatými závorkami [...]. S kódem v prvním příkladu se tedy zachází jako s jediným příkazem.

Takto jej vidí motor (anglicky engine):

alert("Ahoj")[1, 2].forEach(alert);

Vypadá to divně, že? Sloučení řádků v tomto případě je prostě špatně. Za alert musíme vložit středník, aby kód správně fungoval.

To se může stát i v jiných situacích.

Doporučujeme vám psát středníky mezi příkazy i tehdy, když je odděluje konec řádku. Toto pravidlo je v komunitě všeobecně přijímáno. Zmíníme to ještě jednou – ve většině případů je možné středník vypustit. Je však bezpečnější – zejména pro začátečníky – jej používat.

Komentáře

S postupem času se programy stávají čím dál složitějšími, a proto je nutné do nich vkládat komentáře, které popisují, co kód dělá a proč.

Komentáře můžeme vkládat na kterékoli místo ve skriptu. Nemají vliv na jeho výkon, protože je motor jednoduše ignoruje.

Jednořádkové komentáře začínají dvěma lomítky //.

Celý zbytek řádku je komentář. Může být umístěn na samostatném řádku nebo za příkazem.

Například zde:

// Tento komentář je umístěn na samostatném řádku
alert('Ahoj');

alert('světe'); // Tento komentář je za příkazem

Víceřádkové komentáře začínají lomítkem a hvězdičkou /* a končí hvězdičkou a lomítkem */.

Například takto:

/* Příklad se dvěma zprávami.
Toto je víceřádkový komentář.
*/
alert('Ahoj');
alert('světe');

Obsah komentáře se ignoruje, proto jestliže mezi /* … */ vložíme kód, neprovede se.

Někdy může přijít vhod dočasně vykomentovat část kódu:

/* Zakomentovaný kód
alert('Ahoj');
*/
alert('světe');
Používejte zkratky!

Ve většině editorů se dá řádek kódu vykomentovat pomocí zkratky Ctrl+/ pro jednořádkový komentář a Ctrl+Shift+/ pro víceřádkový komentář (označte část kódu a stiskněte uvedené klávesy). Na Macu zkuste Cmd místo Ctrl a Option místo Shift.

Vnořené komentáře nejsou povoleny!

Uvnitř /*...*/ nesmí být další /*...*/. Takový kód skončí s chybou:

/*
  /* vnořený komentář ?!? */
*/
alert( 'světe' );

Neváhejte do svého kódu vkládat komentáře. Sice zvětšují velikost kódu, ale to není vůbec žádný problém. Existuje mnoho nástrojů, které kód před nasazením na produkční server minimalizují a odstraní z něj komentáře, nemají tedy žádný vliv na výkon.

Později v tomto tutoriálu budeme mít kapitolu Kvalita kódu, která se mimo jiné zaobírá i tím, co by mělo a nemělo být v komentáři obsaženo.

Mapa tutoriálu

Komentáře

přečtěte si před komentováním…
  • Máte-li návrhy na zlepšení, vytvořte prosím issue na GitHubu nebo pull request místo komentáře.
  • Pokud v článku něčemu nerozumíte, napište prosím, čemu přesně a na kterém místě.
  • Pro vložení několika slov kódu použijte značku <code>, pro několik řádků je obalte značkou <pre>, pro více než 10 řádků vložte odkaz na pískoviště (plnkr, jsbin, codepen…)