Строки
В JavaScript любые текстовые данные являются строками. Внутренний формат для строк — всегда UTF-16, вне зависимости от кодировки страницы.
Кавычки
let single = 'single-quoted';
let double = "double-quoted";
let backticks = `backticks`;
Спецсимволы
| Символ | Описание |
|---|---|
| \n | Перевод строки |
| \r | В текстовых файлах Windows для перевода строки используется комбинация символов \r\n, а на других ОС это просто \n. Это так по историческим причинам, ПО под Windows обычно понимает и просто \n. |
| \', \", \` | Кавычки |
| \\ | Обратный слеш |
| \t | Знак табуляции |
| \b, \f, \v | Backspace, Form Feed и Vertical Tab — оставлены для обратной совместимости, сейчас не используются. |
Длина строки
💥 length — это числовое свойство, а не функция, добавлять скобки не нужно.
Доступ к символам
let str = `Hello`;
// получаем первый символ
alert( str[0] ); // H
alert( str.at(0) ); // H
// получаем последний символ
alert( str[str.length - 1] ); // o
alert( str.at(-1) ); // o
Также можно перебрать строку посимвольно, используя for..of:
Строки неизменяемы
Можно создать новую строку и записать её в ту же самую переменную вместо старой.
Поиск подстроки
str.indexOf - Он ищет подстроку substr в строке str, начиная с позиции pos, и возвращает позицию, на которой располагается совпадение, либо -1 при отсутствии совпадений.
let str = 'Widget with id';
alert( str.indexOf('Widget') ); // 0, потому что подстрока 'Widget' найдена в начале
alert( str.indexOf('widget') ); // -1, совпадений нет, поиск чувствителен к регистру
alert( str.indexOf("id") ); // 1, подстрока "id" найдена на позиции 1 (..idget with id)
💥 str.lastIndexOf(substr, position) - ищет с конца строки к её началу
includes - если нам необходимо проверить, есть ли совпадение, но позиция не нужна.
alert( "Widget with id".includes("Widget") ); // true
alert( "Hello".includes("Bye") ); // false
startsWith, endsWith - начинается ли, заканчивается ли строка определённой строкой
alert( "Widget".startsWith("Wid") ); // true, "Wid" — начало "Widget"
alert( "Widget".endsWith("get") ); // true, "get" — окончание "Widget"
Получение подстроки
В JavaScript есть 3 метода для получения подстроки: substring, substr и slice Из двух других вариантов, slice более гибок, он поддерживает отрицательные аргументы, и его короче писать. Так что, в принципе, можно запомнить только его.
str.slice(start [, end]) // возвращает часть строки от start до (не включая) end.
str.substring(start [, end]) // возвращает часть строки между start и end (не включая) end.
str.substr(start [, length]) // - возвращает часть строки от start длины length.
Сравнение строк
строки сравниваются посимвольно в алфавитном порядке.
- Строчные буквы больше заглавных 'a' > 'Z'
- Буквы, имеющие диакритические знаки, идут «не по порядку» 'Österreich' > 'Zealand'
Правильное сравнение
«Правильный» алгоритм сравнения строк сложнее, чем может показаться, так как разные языки используют разные алфавиты. К счастью, все современные браузеры (для IE10− нужна дополнительная библиотека Intl.JS) поддерживают стандарт ECMA 402, обеспечивающий правильное сравнение строк на разных языках с учётом их правил.
Для этого есть соответствующий метод.
Вызов str.localeCompare(str2) возвращает число, которое показывает, какая строка больше в соответствии с правилами языка:
- Отрицательное число, если str меньше str2.
- Положительное число, если str больше str2.
- 0, если строки равны.
🚀 Источник: https://learn.javascript.ru/string