String. prototype. charAt()
Zwraca znak spod podanego indeksu. Poza zakresem zwraca pusty napis zamiast undefined.
- Zwraca
- Napis z jednym znakiem (jednostką UTF-16) albo pusty napis
"", gdy indeks jest poza zakresem. - Zmienia oryginał
- Nie
Przykład
#const course = 'Python'
console.log(course.charAt(0))
console.log(course.charAt(3))
console.log(course.charAt(10) === '')
console.log(course[10])Definicja i zastosowanie
#Metoda charAt() zwraca jednoznakowy napis z podanej pozycji, licząc od 0. Bez argumentu zwraca pierwszy znak. To jedna z najstarszych metod napisów, działająca nawet w bardzo starych przeglądarkach.
Od nawiasów kwadratowych różni się zachowaniem poza zakresem: text.charAt(100) zwraca pusty napis "", a text[100] zwraca undefined. Indeksy ujemne nie są obsługiwane i również dają pusty napis, więc do liczenia od końca służy at().
Pusty napis jako wynik bywa wygodny, bo od razu możesz wywołać na nim kolejne metody, np. charAt(0).toUpperCase(), bez ryzyka błędu dla pustego tekstu. Metoda pracuje na jednostkach UTF-16, więc z emoji zwróci tylko połowę.
Składnia
#string.charAt()
string.charAt(index)Parametry
#index
number, opcjonalny
Pozycja znaku, od0. Domyślnie0. Wartość spoza zakresu daje pusty napis.
Więcej przykładów
#function capitalize(text) {
return text.charAt(0).toUpperCase() + text.slice(1)
}
console.log(capitalize('ćwiczenie'))
console.log(capitalize('').length)Dla pustego napisu text[0] dałoby undefined, a wywołanie undefined.toUpperCase() rzuciłoby błąd. charAt(0) zwraca "", więc funkcja działa zawsze.
const fullName = 'Anna Kowalska'
const initials = fullName
.split(' ')
.map((part) => part.charAt(0))
.join('')
console.log(initials)Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- W nowym kodzie do pojedynczych znaków częściej używa się
text[i]alboat(i).charAt()wybierz, gdy poza zakresem wolisz dostać""zamiastundefined. - Kod liczbowy znaku, np. do sprawdzenia, czy to cyfra, zwracają
charCodeAt()icodePointAt().
Powiązane hasła
#- String.prototype.at()Zwraca znak spod podanego indeksu. Ujemne indeksy liczą się od końca, więc at(-1) to ostatni znak.
- String.prototype.slice()Zwraca fragment napisu od indeksu początkowego do końcowego (bez niego). Obsługuje indeksy ujemne.
- String.prototype.toUpperCase()Zwraca kopię napisu zamienioną na wielkie litery. Poprawnie obsługuje polskie znaki.
- String.prototype.indexOf()Zwraca indeks pierwszego wystąpienia podanego tekstu w napisie albo -1, gdy go nie ma.
Widzisz błąd albo brakuje przykładu? Napisz do nas.