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(), потому что не поддерживает отрицательные индексы.