Learn JavaScript

charAt() - метод для получения символа по индексу в строке в JavaScript

charAt() возвращает символ строки по индексу.

Это один из старых и простых способов получить букву или другой символ из строки.

Синтаксис

str.charAt(index)

Метод вызывается у строки и возвращает строку из одного символа.

Как работает charAt()

const text = "JavaScript";

console.log(text.charAt(0)); // "J"
console.log(text.charAt(4)); // "S"

Индекс начинается с 0, как и в других строковых операциях JavaScript.

Если индекс вне диапазона

Если символа по такому индексу нет, charAt() вернёт пустую строку "".

const text = "abc";

console.log(text.charAt(10)); // ""

Это важное отличие от at(), который в такой ситуации возвращает undefined.

Отрицательные индексы

charAt() не поддерживает отрицательные индексы.

const text = "hello";

console.log(text.charAt(-1)); // ""

Если нужен доступ к символам с конца строки, удобнее использовать at().

console.log(text.at(-1)); // "o"

Когда это полезно

charAt() удобно использовать, когда:

  • нужно получить символ по обычному индексу
  • важна совместимость со старым кодом
  • не нужны отрицательные индексы

Пример:

const name = "Anna";

console.log(name.charAt(0)); // "A"

charAt() и квадратные скобки

Обычный доступ к символу строки часто выглядит так:

const text = "hello";

console.log(text[1]); // "e"

Во многих случаях это проще и короче, чем charAt().

Но при выходе за пределы строки поведение отличается:

console.log(text[10]);       // undefined
console.log(text.charAt(10)); // ""

charAt() и at()

Оба метода получают символ по индексу:

const text = "hello";

console.log(text.charAt(1)); // "e"
console.log(text.at(1));     // "e"

Но есть важные отличия:

  • charAt() не поддерживает отрицательные индексы
  • charAt() возвращает "", если индекс вне диапазона
  • at() поддерживает отрицательные индексы и возвращает undefined
const text = "hello";

console.log(text.charAt(-1)); // ""
console.log(text.at(-1));     // "o"

console.log(text.charAt(10)); // ""
console.log(text.at(10));     // undefined

Частые ошибки

Ожидать, что charAt() поддерживает отрицательные индексы

const text = "hello";

console.log(text.charAt(-1)); // ""

Для доступа с конца строки лучше использовать at().

Забывать, что индексация начинается с нуля

const text = "abc";

console.log(text.charAt(0)); // "a"
console.log(text.charAt(1)); // "b"

Быстрая памятка

  • charAt(index) возвращает символ строки по индексу
  • метод не поддерживает отрицательные индексы
  • если индекс вне диапазона, возвращается ""
  • для доступа с конца строки удобнее at()
  • в современном коде часто используют at() или квадратные скобки

Коротко

charAt() - это метод строки в JavaScript для получения символа по индексу. Он полезен для обычного доступа к символам, но в современном коде часто уступает at(), потому что не поддерживает отрицательные индексы.