JavaRush /Курсы /Модуль 1: Web Core /Строки и методы работы с ними

Строки и методы работы с ними

Модуль 1: Web Core
17 уровень , 3 лекция
Открыта

4.1 Введение в строки

Строки в JavaScript представляют собой последовательности символов и являются одним из основных типов данных. Строки можно создавать с использованием одинарных кавычек 'текст ', двойных кавычек "текст", или обратных кавычек `текст`.

Примеры строк:

JavaScript
    
      let singleQuote = 'Hello, World!';
      let doubleQuote = "Hello, World!";
      let backticks = `Hello, World!`;
    
  

У объекта строки можно вызывать такие методы:

Метод Описание
length Возвращает длину строки
charAt(index) Возвращает символ, находящийся на указанной позиции
toUpperCase() Преобразует строку в верхний регистр
toLowerCase() Преобразует строку в нижний регистр
indexOf(substring) Возвращает индекс первого вхождения подстроки или -1, если не найдено
includes(substring) Проверяет, содержит ли строка указанную подстроку, возвращает true или false
slice(start, end) Извлекает часть строки и возвращает новую строку
replace(searchValue, newValue) Заменяет указанную подстроку на новую подстроку
split(separator) Разбивает строку на массив подстрок, используя указанный разделитель
trim() Удаляет пробелы с начала и конца строки

4.2 Основные методы работы со строками

Примеры использования методов

1. Свойство length

Возвращает длину строки:

JavaScript
    
      let str = 'Hello';
      console.log(str.length); // 5
    
  

2. Метод charAt(index)

Возвращает символ, находящийся на указанной позиции:

JavaScript
    
      let str = 'Hello';
      let result = str.charAt(1);
      console.log(result); // 'e'
    
  

3. Метод toUpperCase() и toLowerCase():

Преобразуют строку в верхний или нижний регистр:

JavaScript
    
      let str = 'Hello';
      console.log(str.toUpperCase()); // 'HELLO'
      console.log(str.toLowerCase()); // 'hello'
    
  

4. Метод indexOf(substring)

Возвращает индекс первого вхождения подстроки или -1, если подстрока не найдена:

JavaScript
    
      let str = 'Hello, world!';
      let result = str.indexOf('world');
      console.log(result); // 7
    
  

5. Метод includes(substring)

Проверяет, содержит ли строка указанную подстроку, возвращает true или false:

JavaScript
    
      let str = 'Hello, world!';
      let result = str.includes('world');
      console.log(result); // true
    
  

6. Метод trim()

Удаляет пробелы с начала и конца строки:

JavaScript
    
      let str = '   Hello, world!   ';
      console.log(str.trim()); // 'Hello, world!'
    
  

7. Метод replace(searchValue, newValue)

Заменяет указанную подстроку на новую подстроку:

JavaScript
    
      let str = 'Hello, world!';
      console.log(str.replace('world', 'JavaScript')); // 'Hello, JavaScript!'
    
  

8. Метод split(separator)

Разбивает строку на массив подстрок, используя указанный разделитель:

JavaScript
    
      let str = 'Hello, world!';
      let words = str.split(' ');
      console.log(words); // ['Hello,', 'world!']
    
  

9. Метод substring(start, end)

Возвращает подстроку между двумя индексами:

JavaScript
    
      let str = 'Hello, world!';
      console.log(str.substring(0, 5)); // 'Hello'
    
  

10. Метод substr(start, length)

Возвращает подстроку, начиная с указанного индекса и длиной, равной указанному числу символов:

JavaScript
    
      let str = 'Hello, world!';
      console.log(str.substr(0, 5)); // 'Hello'
    
  

11. Метод slice(start, end)

Извлекает часть строки и возвращает новую строку:

JavaScript
    
      let str = 'Hello, world!';
      console.log(str.slice(0, 5)); // 'Hello'
    
  

12. Метод startsWith(substring)

Проверяет, начинается ли строка с указанной подстроки, возвращает true или false:

JavaScript
    
      let str = 'Hello, world!';
      console.log(str.startsWith('Hello')); // true
    
  

13. Метод endsWith(substring)

Проверяет, заканчивается ли строка указанной подстрокой, возвращает true или false:

JavaScript
    
      let str = 'Hello, world!';
      console.log(str.endsWith('world!')); // true
    
  

14. Метод repeat(count)

Возвращает новую строку, содержащую указанное количество копий исходной строки:

JavaScript
    
      let str = 'Hello';
      console.log(str.repeat(3)); // 'HelloHelloHello'

      let str2 = '-';
      console.log(str2.repeat(30)); // '---------------------------------------------------------------'
    
  

4.3 Cтрока нового поколения

Шаблонные строки (template strings) добавили в JavaScript недавно. Они предоставляют более удобный и читаемый способ работы с текстом по сравнению с обычными строками. Заключаются в обратные кавычки ` и поддерживают интерполяцию выражений и многострочный текст.

Синтаксис:

    
      `строка нового поколения`
    
  

Пример:

Шаблонный литерал greeting создается с использованием обратных кавычек.

JavaScript
    
      const greeting = `Hello, World!`;
      console.log(greeting); // "Hello, World!"
    
  

Основные особенности шаблонных строк:

  • Интерполяция выражений: шаблонные строки позволяют вставлять выражения и переменные внутрь строки с помощью ${}
  • Многострочный текст: шаблонные строки поддерживают многострочный текст без необходимости использовать специальные символы для переноса строк
  • Встроенные выражения: внутри шаблонных строк можно использовать любые выражения JavaScript, включая функции

Рассмотрим примеры использования шаблонных строк.

Интерполяция выражений

Шаблонные строки позволяют легко вставлять значения переменных и результаты выражений внутрь строки:

JavaScript
    
      let name = "Alice";
      let age = 30;
      let greeting = `Hello, ${name}! You are ${age} years old.`;
      console.log(greeting); // "Hello, Alice! You are 30 years old."
    
  

В этом примере переменные name и age вставляются внутрь строки с использованием ${}.

Многострочный текст

Шаблонные строки упрощают создание многострочных строк без необходимости использования символов переноса строки (\n):

JavaScript
    
      let multiLine = `Lorem ipsum odor, consectetuer adipiscing elit.
      Sit lorem mattis eget maximus.`;

      console.log(multiLine);

      // Lorem ipsum odor, consectetuer adipiscing elit. 
      // Sit lorem mattis eget maximus.
    
  

Встроенные выражения

Внутри шаблонных строк можно использовать любые выражения JavaScript, включая вызовы функций:

JavaScript
    
      let a = 5;
      let b = 10;
      let result = `The sum of ${a} and ${b} is ${a + b}.`;
      console.log(result); // "The sum of 5 and 10 is 15."

      function getGreeting(name) {
        return `Hello, ${name}!`;
      }

      let greeting = `${getGreeting("Bob")}`;
      console.log(greeting); // "Hello, Bob!"
    
  

Лучше, конечно, функции не вызывать внутри строк, но если очень хочется, то можно.

1
Задача
Модуль 1: Web Core, 17 уровень, 3 лекция
Недоступна
Регистры строки
Регистры строки
1
Задача
Модуль 1: Web Core, 17 уровень, 3 лекция
Недоступна
Замена подстроки
Замена подстроки
Комментарии (6)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Анастасия Уровень 47
31 июля 2025
Я так понимаю, что лучше использовать substring, а не substr, хотя второй выглядет сначала привлекательней (не надо расчитывать индекс второй, а просто длину подстроки передаешь). Так же не описано отличие slice от substring. Ниже в комментерии уже описано про slice. Если будет интересно вот описание про различие: https://ru.hexlet.io/qna/javascript/questions/v-chem-raznitsa-metodov-dlya-stroki-slice-i-substr Так же описание slice: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/slice Так же для новечков не разъяснили, что это за зверь такой - \n Если знаешь программирование, то знаешь, что это перенос каретки на другу строку, а так это просто символ не понятный %) Плюс тут ооооочень много инфы.... Т.к. я уже знакома с java для меня это нормально (методы очень схожи), но для новичков это просто ппц.... Можно было разделать на 2-3 урока спокойно =( В последнем примере:

let greeting = `${getGreeting("Bob")}`;
console.log(greeting); // "Hello, Bob!"
Можно заменить на код(поидее так же работать будет):

let greeting = getGreeting("Bob");
console.log(greeting); // "Hello, Bob!"
Похоже, что это просто пример показать, что так можно, только зачем, если это можно обойти....
Алим Уровень 23
21 января 2025
Хорошо что я проходил, Python для начинающий) Без этого было бы жестко
No Name Уровень 22
1 июня 2025
поддерживаю
Ислам Уровень 18
6 декабря 2024
Лучше, конечно, функции не вызывать внутри строк, но если очень хочется, то можно.
Ирина Уровень 69
6 ноября 2024
Основное отличие slice от substring состоит в том, что slice отрицательные значения индексов отсчитывает с конца строки, а substring приравнивает их к нулю. slice(indexStart) slice(indexStart, indexEnd) If indexStart >= str.length, an empty string is returned. If indexStart < 0, the index is counted from the end of the string. More formally, in this case, the substring starts at max(indexStart + str.length, 0). If indexStart is omitted, undefined, or cannot be converted to a number, it's treated as 0. If indexEnd is omitted or undefined, or if indexEnd >= str.length, slice() extracts to the end of the string. If indexEnd < 0, the index is counted from the end of the string. More formally, in this case, the substring ends at max(indexEnd + str.length, 0). If indexEnd <= indexStart after normalizing negative values (i.e. indexEnd represents a character that's before indexStart), an empty string is returned. substring(indexStart) substring(indexStart, indexEnd) If indexEnd is omitted, substring() extracts characters to the end of the string. If indexStart is equal to indexEnd, substring() returns an empty string. If indexStart is greater than indexEnd, then the effect of substring() is as if the two arguments were swapped; see example below. Any argument value that is less than 0 or greater than str.length is treated as if it were 0 and str.length, respectively. Any argument value that is NaN is treated as if it were 0.
Максим Уровень 50
2 ноября 2024
Объяснение JS началось плоховато. Понимаю, что метод split показать нужно, хоть и новички, вроде, не должны о массиве ещё знать. Понятно, что рано рассказывать о том, что строки - immutable объекты, но чуть упомянуть это и показать нормальный пример: let str = 'Hello, world!'; let otherString = str.replace('world', 'JavaScript'); console.log(otherString); // 'Hello, JavaScript!' Вместо let str = 'Hello, world!'; console.log(str.replace('world', 'JavaScript')); // 'Hello, JavaScript!'