Learn JavaScript

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

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

Главное удобство этого метода в том, что он поддерживает не только обычные, но и отрицательные индексы.

Синтаксис

str.at(index)

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

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

const text = "JavaScript";

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

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

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

at() умеет считать с конца строки:

const text = "JavaScript";

console.log(text.at(-1)); // "t"
console.log(text.at(-2)); // "p"

Это одно из главных отличий at() от обращения через квадратные скобки.

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

Если символа по такому индексу нет, метод вернёт undefined.

const text = "abc";

console.log(text.at(10));  // undefined
console.log(text.at(-10)); // undefined

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

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

  • нужно получить символ по индексу
  • нужно взять последний символ строки
  • хочется работать с концом строки без ручного расчёта length - 1

Пример:

const filename = "photo.jpg";

console.log(filename.at(-1)); // "g"

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

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

const text = "hello";

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

Но у квадратных скобок нет удобной поддержки отрицательных индексов:

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

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

at() и charAt()

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

const text = "hello";

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

Но у at() есть два важных плюса:

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

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

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

Ожидать, что отрицательный индекс сработает у квадратных скобок

const text = "hello";

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

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

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

const text = "abc";

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

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

  • at(index) возвращает символ строки по индексу
  • метод поддерживает отрицательные индексы
  • at(-1) возвращает последний символ
  • если индекс вне диапазона, метод вернёт undefined
  • для доступа с конца строки at() удобнее, чем квадратные скобки

Коротко

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