Úloha 2 – Metody pro práci se znaky v řetězci
Úvod do úlohy
Pokud chceme pracovat s textem podrobněji, často potřebujeme zjistit jeho délku nebo přistupovat k jednotlivým znakům podle jejich pozice. Typickým příkladem je kontrola, zda má uživatelské jméno alespoň určitý počet znaků, nebo zjištění prvního písmene v řetězci. JavaScript k tomu nabízí hned několik způsobů, které se liší pohodlností, podporou speciálních případů (např. záporné indexy) i zpětnou kompatibilitou. Umět se mezi těmito možnostmi rozhodnout je důležité pro psaní jasného a spolehlivého kódu.
Teorie a principy
-
Délka řetězce (
length)-
Vlastnost
lengthvrací počet znaků v řetězci. -
Hodí se pro cykly, validaci vstupů nebo zjištění pozice posledního znaku.
-
-
Metoda
charAt(index)-
Vrací znak na zadané pozici.
-
Pokud je index mimo rozsah, vrátí prázdný řetězec
"". -
Funguje od začátku JavaScriptu, takže je velmi spolehlivá.
-
-
Metoda
at(index)-
Modernější varianta.
-
Podporuje záporné indexy, takže
-1znamená „poslední znak“,-2předposlední atd. -
Pokud je index mimo rozsah, vrátí
undefined.
-
-
Přístup pomocí hranatých závorek
[]-
Umožňuje napsat
text[0]místotext.charAt(0). -
Je stručný, ale neumí záporné indexy a u neplatné pozice vrací
undefined. -
Starší prohlížeče tuto možnost nemusí plně podporovat.
-
Praktické příklady kódu
Typické chyby / záludnosti
-
Záměna prázdného řetězce a undefined
-
charAt()mimo rozsah vrací"", -
at()nebo[]mimo rozsah vracíundefined. -
Studenti si to často pletou.
-
-
Snaha použít záporné indexy v hranatých závorkách nebo
charAt() -
Zapomenutí, že indexování začíná od nuly
-
jmeno.charAt(0)je první znak. -
jmeno.charAt(jmeno.length - 1)je poslední znak.
-
Shrnutí
-
length→ vrací počet znaků. -
charAt(index)→ spolehlivý, vrací znak nebo prázdný řetězec. -
at(index)→ moderní, podporuje záporné indexy, vracíundefinedmimo rozsah. -
[]→ stručný zápis, neumí záporné indexy, vracíundefined. -
Indexování vždy začíná od 0.