JavaScriptNapisy

String.prototype.at()

Zwraca znak spod podanego indeksu. Ujemne indeksy liczą się od końca, więc at(-1) to ostatni znak.

Zwraca
Napis z jednym znakiem (jednostką UTF-16) albo undefined, gdy indeks wykracza poza napis.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
JavaScript
const word = 'Kosmos'

console.log(word.at(0))
console.log(word.at(-1))
console.log(word.at(-2))
console.log(word.at(10))
Konsola
K
s
o
undefined

Definicja i zastosowanie

#

Metoda at() zwraca jednoznakowy napis spod wskazanej pozycji. Dla indeksów dodatnich działa jak nawiasy kwadratowe, ale dodatkowo rozumie indeksy ujemne: -1 to ostatni znak, -2 przedostatni i tak dalej.

Dzięki temu zamiast text[text.length - 1] wystarczy text.at(-1). Gdy indeks wypada poza napisem, metoda zwraca undefined. Ułamki są ucinane w stronę zera.

Tak jak inne metody oparte na indeksach, at() pracuje na jednostkach UTF-16. Dla emoji zajmujących dwie jednostki zwróci tylko połowę znaku, więc wtedy lepiej użyć [...text].at(-1).

Składnia

#
Składnia
string.at(index)

Parametry

#
  • index

    number

    Pozycja znaku. 0 to pierwszy znak, a wartości ujemne liczą się od końca (-1 to ostatni).

Więcej przykładów

#
Porównanie z nawiasami i charAt()
JavaScript
const code = 'CSS'

console.log(code.at(-1))
console.log(code[-1])
console.log(code[code.length - 1])
console.log(code.charAt(-1) === '')
Konsola
S
undefined
S
true
Sprawdzanie ostatniego znaku
JavaScript
function ensureDot(sentence) {
  return sentence.at(-1) === '.' ? sentence : sentence + '.'
}

console.log(ensureDot('Lekcja ukończona'))
console.log(ensureDot('Moduł zaliczony.'))
Konsola
Lekcja ukończona.
Moduł zaliczony.

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

#
  • at() zwraca jeden znak. Do pobrania kilku ostatnich znaków użyj slice(-3).
  • Zapis text[-1] nie liczy od końca, tylko szuka właściwości o nazwie „-1”, więc zwraca undefined. Do indeksów ujemnych zawsze używaj at().

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.