Перейти к содержанию
Educora
Начальный13 мин4 / 27

Строки и шаблонные строки

Научись работать с текстом: обращаться к символам, пользоваться полезными методами и шаблонными строками, которые легко подставляют переменные в текст.

Проверь себя
В этом уроке ты узнаешь
  • Находить длину строки и обращаться к символу по индексу
  • Пользоваться методами trim, includes, slice, split и другими
  • Подставлять переменные и выражения в текст с помощью шаблонных строк

На экране телефона ты видишь: «Привет, Айсель! У тебя 3 новых сообщения». Программа не хранит эту фразу готовой — она собирает её из частей: постоянных слов, имени пользователя и количества сообщений. Работа с текстом — одна из самых частых задач в программировании.

Как создать строку

Строка (string) — это последовательность символов. Её можно записать в одинарных кавычках, в двойных или между обратными кавычками (backtick). Одинарные и двойные кавычки работают одинаково — главное, чтобы открывающая и закрывающая совпадали. Для особых символов внутри строки используют знак \: \n — перевод строки, \' — символ кавычки.

JavaScript
const single = 'Hello';
const double = "Hello";
const quote = 'It\'s JavaScript';

console.log(single, double);
console.log(quote);
console.log('Line 1\nLine 2');
▸ Ожидаемый результат
Hello Hello
It's JavaScript
Line 1
Line 2

Длина и индексы

Свойство length показывает, сколько символов в строке. У каждого символа есть свой номер — индекс, и счёт начинается с 0. Поэтому в строке 'Baku' символ B имеет индекс 0, а u — индекс 3. Последний символ можно получить и через at(-1).

JavaScript
const city = 'Baku';

console.log(city.length);
console.log(city[0]);
console.log(city[city.length - 1]);
console.log(city.at(-1));
console.log(city.toUpperCase());
console.log(city.toLowerCase());
▸ Ожидаемый результат
4
B
u
u
BAKU
baku

Полезные методы

Метод — это функция, «прикреплённая» к значению; её вызывают через точку: city.toUpperCase(). У строк много методов, но для большинства повседневных задач хватает тех, что ниже.

МетодЧто делаетПример
trim()убирает пробелы в начале и в конце' hi '.trim() → 'hi'
includes(x)проверяет, есть ли в строке x'cat'.includes('a') → true
indexOf(x)возвращает первый индекс x или −1'cat'.indexOf('t') → 2
slice(a, b)вырезает часть от a до b (не включая b)'Hello'.slice(1, 3) → 'el'
replace(a, b)заменяет первое a на b'hi'.replace('h', 'H') → 'Hi'
split(x)делит строку по x и возвращает массив'a-b'.split('-') → ['a', 'b']
JavaScript
const email = '  Leyla.Mammadova@Example.com  ';
const clean = email.trim().toLowerCase();

console.log(clean);
console.log(clean.includes('@'));
console.log(clean.indexOf('@'));
console.log(clean.slice(0, clean.indexOf('@')));
console.log(clean.endsWith('.com'));
▸ Ожидаемый результат
leyla.mammadova@example.com
true
15
leyla.mammadova
true
Методы можно вызывать цепочкой: сначала trim(), потом toLowerCase().
JavaScript
const sentence = 'I love JavaScript';

console.log(sentence.replace('love', 'enjoy'));
console.log(sentence.split(' '));
console.log('ha'.repeat(3));
console.log('7'.padStart(3, '0'));
console.log(sentence);
▸ Ожидаемый результат
I enjoy JavaScript
[ 'I', 'love', 'JavaScript' ]
hahaha
007
I love JavaScript

Шаблонные строки

Склеивать текст по кусочкам через + утомительно, и легко забыть пробел. Шаблонные строки (template literals) упрощают эту задачу. Их пишут между обратными кавычками — в английской раскладке это клавиша под Esc, та же, где буква Ё. Если внутри написать ${...}, значение выражения в фигурных скобках подставится в текст.

JavaScript
const name = 'Aysel';
const messages = 3;

console.log('Hi, ' + name + '! You have ' + messages + ' new messages.');
console.log(`Hi, ${name}! You have ${messages} new messages.`);
▸ Ожидаемый результат
Hi, Aysel! You have 3 new messages.
Hi, Aysel! You have 3 new messages.
Результат одинаковый, но вторую строку гораздо проще читать и писать.

Внутри ${...} может стоять не только переменная, но и любое выражение: вычисление, вызов метода. Шаблонные строки могут занимать и несколько строк — \n писать не нужно. Метод toFixed(2) показывает число с двумя знаками после запятой.

JavaScript
const item = 'bread';
const price = 0.8;
const quantity = 5;

console.log(`Total: ${price * quantity} AZN`);

const receipt = `Item: ${item.toUpperCase()}
Quantity: ${quantity}
Sum: ${(price * quantity).toFixed(2)} AZN`;
console.log(receipt);
▸ Ожидаемый результат
Total: 4 AZN
Item: BREAD
Quantity: 5
Sum: 4.00 AZN
JavaScript
const name = 'Elvin';

console.log('Hi, ${name}');
console.log(`Hi, ${name}`);
▸ Ожидаемый результат
Hi, ${name}
Hi, Elvin

Практика: создаём логин

Соединим всё, что узнали. Составим логин из полного имени: split(' ') разделяет имя и фамилию, toLowerCase() делает буквы строчными, а шаблонная строка соединяет части через точку. Попробуй код со своим именем.

JavaScript
const fullName = 'Murad Aliyev';
const parts = fullName.split(' ');
const login = `${parts[0].toLowerCase()}.${parts[1].toLowerCase()}`;

console.log(parts);
console.log(login);
console.log(`Welcome, ${parts[0]}! Your login is ${login}`);
▸ Ожидаемый результат
[ 'Murad', 'Aliyev' ]
murad.aliyev
Welcome, Murad! Your login is murad.aliyev
Задание

Имя в форме записано небрежно: ' Leyla HASANOVA '. Составь из него логин leyla.hasanova12 (в конце — две последние цифры года рождения) и выведи его. Затем выведи длину логина в виде Login length: N.

Задание · JavaScript
const rawName = '  Leyla HASANOVA ';
const year = 2012;
// 1) build and print the login leyla.hasanova12
// 2) print Login length: N
▸ Ожидаемый результат
leyla.hasanova12
Login length: 16

Главное

  • Строку пишут в одинарных, двойных или обратных кавычках; \n — перевод строки.
  • length даёт количество символов; индексы начинаются с 0.
  • trim, includes, slice, replace и split — самые ходовые методы.
  • Методы строк не меняют оригинал, а возвращают новую строку.
  • В шаблонных строках ${...} подставляет значение выражения в текст и работает только в обратных кавычках.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
Чему равно 'JavaScript'.length?