Индексы в строках JavaScript
- Что такое индекс
- Индексы начинаются с нуля
- Как получить символ строки
- Последний символ строки
- Несуществующий индекс
- Пробелы и знаки препинания
- Строку нельзя изменить по индексу
- Итого
У каждого символа в строке есть номер. Этот номер называется индексом.
let word = 'code';
console.log(word[0]);
Результат:
c
Запись word[0] означает: возьми из строки word символ с индексом 0.
Что такое индекс
Индекс показывает позицию символа внутри строки.
let word = 'cat';
У этой строки такие индексы:
c- индекс0;a- индекс1;t- индекс2.
Индекс нужен, когда мы хотим получить конкретный символ, а не всю строку целиком.
Индексы начинаются с нуля
В JavaScript первый символ строки имеет индекс 0, второй - 1, третий - 2 и так далее.
let language = 'JavaScript';
console.log(language[0]);
console.log(language[1]);
console.log(language[2]);
Результат:
J
a
v
Это важный момент. Если нужна первая буква, пишем не language[1], а language[0].
Как получить символ строки
Чтобы получить символ по индексу, после имени переменной ставят квадратные скобки и пишут номер символа.
let city = 'Москва';
console.log(city[0]);
console.log(city[3]);
Результат:
М
к
Такой способ работает и со строкой без переменной.
console.log('Привет'[0]);
Результат:
П
Но в реальном коде чаще строку сначала записывают в переменную.
Последний символ строки
У строки есть свойство length. Оно показывает длину строки.
Так как индексы начинаются с нуля, индекс последнего символа равен length - 1.
let word = 'JavaScript';
console.log(word.length);
console.log(word[word.length - 1]);
Результат:
10
t
В строке 10 символов, но последний индекс - 9. Поэтому выражение word.length - 1 дает индекс последнего символа.
Несуществующий индекс
Если обратиться к индексу, которого в строке нет, JavaScript вернет undefined.
let word = 'cat';
console.log(word[10]);
Результат:
undefined
В строке ‘cat’ есть только индексы 0, 1 и 2. Индекса 10 нет.
Отрицательные индексы через квадратные скобки тоже не работают.
let word = 'cat';
console.log(word[-1]);
Результат:
undefined
Для получения символа с конца строки есть метод at(), но его разберем отдельно.
Пробелы и знаки препинания
Пробелы и знаки препинания тоже занимают место в строке и получают свои индексы.
let text = 'Hi!';
console.log(text[0]);
console.log(text[1]);
console.log(text[2]);
Результат:
H
i
!
В строке с пробелом пробел тоже можно получить по индексу.
let message = 'Hi Tom';
console.log(message[2]);
Результатом будет пробел. В консоли его сложно заметить, но он есть.
Строку нельзя изменить по индексу
Символ строки можно прочитать по индексу, но нельзя заменить напрямую.
let word = 'cat';
word[0] = 'b';
console.log(word);
Результат:
cat
Строка не изменилась. Если нужно получить другую строку, создают новое значение.
let word = 'cat';
let newWord = 'b' + word.slice(1);
console.log(newWord);
Результат:
bat
Метод slice() подробно разберем в отдельном уроке.
Итого
Индекс - это номер символа в строке.
- Индексы начинаются с
0. - Символ можно получить через квадратные скобки:
word[0]. - Последний символ можно получить через
word[word.length - 1]. - Если индекса нет, вернется
undefined. - Строку нельзя изменить прямой заменой символа по индексу.