edubun
Русский

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

"5" + 3 даёт "53", а не 8. Когда с одной стороны от + стоит строка, JavaScript соединяет текст, а не складывает числа.

Текст в программе

Имена, сообщения, адреса, пароли и целые веб-страницы являются текстом, и JavaScript хранит текст в виде строк. Строка представляет собой последовательность символов в кавычках. JavaScript принимает три вида кавычек: двойные "вот так", одинарные 'вот так' и обратные `вот так`. Первые два вида ведут себя одинаково. Обратные кавычки создают шаблонную строку, у которой есть дополнительные возможности, о них ниже.

Если в тексте есть кавычка одного вида, оберни его кавычками другого вида: "It's late" работает, потому что апостроф не является двойной кавычкой. Ещё можно поставить перед кавычкой обратную косую черту, чтобы сказать «эта кавычка является частью текста»: 'It\'s late'. Обратная косая черта и буква n, то есть \n, означают перенос строки внутри строки.

Длина и позиции

Каждая строка знает, сколько в ней символов: "JavaScript".length равно 10. У каждого символа есть и позиция, она называется индексом, и счёт начинается с 0, а не с 1. Так что в "JavaScript" индекс 0 у J, индекс 4 у S, а последний индекс 9, на единицу меньше длины. Один символ читают с помощью квадратных скобок: word[0]. Счёт с 0 сначала кажется странным, но так считает большинство языков программирования, и ты снова встретишь это в массивах.

const word = "JavaScript";
console.log(word.length);                // 10
console.log(word[0]);                    // J
console.log(word[word.length - 1]);      // t

Полезные методы строк

У строк есть встроенные инструменты, которые называются методами; их вызывают через точку после строки. toUpperCase() и toLowerCase() возвращают копию заглавными или строчными буквами. includes("Script") отвечает true или false в зависимости от того, встречается ли этот текст внутри. slice(0, 4) возвращает символы от индекса 0 до индекса 4, не включая его, а в "JavaScript" это "Java". trim() убирает пробелы с обоих концов, это удобно, чтобы почистить то, что ввёл человек. Ни один из этих методов не меняет исходную строку. Строки в JavaScript нельзя изменить на месте; методы всегда возвращают новую строку.

Соединение строк с помощью +

Оператор + соединяет строки одну за другой, это называется конкатенацией. "Hello, " + "Mina" даёт "Hello, Mina". Пробелы сами не добавляются, так что ставь их внутри кавычек. А вот ловушка из начала урока: если с любой стороны от + стоит строка, JavaScript превращает другую сторону в строку и соединяет их. "5" + 3 даёт "53". Другие арифметические операторы текст не соединяют, поэтому "5" * 2 превращает "5" в число и даёт 10. Чтобы превратить строку из цифр в настоящее число, используй Number("5").

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

Собирать предложение через + быстро становится неудобно: name + " is " + age + " years old." требует внимательно расставить пробелы и кавычки. Шаблонная строка, записанная в обратных кавычках, позволяет вставлять значения прямо в текст через ${ }. Всё, что внутри фигурных скобок, вычисляется как выражение, и результат попадает в строку. Шаблонные строки могут занимать и несколько строк.

const name = "Mina";
const age = 14;
console.log(`${name} is ${age} years old.`);   // Mina is 14 years old.
console.log(`Next year: ${age + 1}`);           // Next year: 15

Разобранный пример. На ценнике в магазине должно быть "3 apples cost 4.5". При const n = 3, price = 1.5; шаблон `${n} apples cost ${n * price}` делает это в одну строку, а умножение происходит внутри фигурных скобок.

Обратные кавычки вокруг текста, знак доллара и фигурные скобки вокруг каждого значения: `Hi ${name}`

stringТекст в кавычках или обратных кавычках
индексПозиция символа, счёт с 0
.lengthСколько символов в строке
конкатенацияСоединение строк с помощью +
шаблонная строкаСтрока в обратных кавычках с местами ${ }
методИнструмент, который вызывают через точку: word.toUpperCase()
slice(a, b)Символы от индекса a до b, не включая b
экранирование \nПеренос строки внутри строки
  1. Что выведет этот код?
    console.log("5" + 3);
  2. Что выведет этот код?
    console.log("5" * 3);
  3. Что выведет этот код?
    console.log("cat".length);
  4. Что выведет этот код?
    const s = "Seoul";
    console.log(s[1]);
  5. Что выведет этот код?
    console.log("JavaScript".slice(4, 10));
  6. Что выведет этот код?
    const a = 2;
    const b = 3;
    console.log(`${a} + ${b} = ${a + b}`);
    • 2 + 3 = 5
    • ${a} + ${b} = ${a + b}
    • 2 + 3 = 23
  7. Что выведет этот код?
    console.log("Hi" + " " + "there".toUpperCase());
  8. Что выведет этот код?
    console.log("banana".includes("nan"));
    • true
    • false
  9. Что выведет этот код?
    console.log(1 + 2 + "3");
  10. Что выведет этот код?
    console.log(Number("7") + 1);
  11. Какой последний индекс у строки длины 6?
Главное
  • Строки пишут в "двойных", 'одинарных' или `обратных` кавычках.
  • Индексы начинаются с 0; последний индекс равен length - 1.
  • Методы вроде toUpperCase, includes, slice и trim возвращают новые строки.
  • Если с любой стороны от + стоит строка, + соединяет текст.
  • Шаблонные строки: `текст ${выражение} текст`.
Источники курса (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Проверено: 2026-10-17