Cегодня мы погрузимся в увлекательный мир строк в JavaScript. Если вы только начинаете свой путь в программировании, этот урок станет важным шагом. Строки это одна из базовых структур данных и без них невозможно представить разработку. Мы разберем как создавать строки, работать с ними и применять ключевые методы.
Что такое строка в JavaScript?
Строка это последовательность символов, которая используется для представления текста. В JavaScript строки можно создать тремя способами:
- Одинарные кавычки:
'Привет, мир!'
- Двойные кавычки:
"JavaScript — это круто!"
- Шаблонные строки (обратные кавычки):
`Сегодня ${new Date().toLocaleDateString()}`
Пример:
let greeting = 'Привет, студенты!'; let language = "JavaScript"; let message = `Сегодня мы изучаем ${language}`;
Шаблонные строки особенно удобны, так как позволяют вставлять выражения (как в примере выше) и создавать многострочный текст без символа \n
.
Основные свойства и методы строк
Строки в JavaScript имеют множество встроенных методов. Сегодня мы разберем четыре ключевых:
.length
.toUpperCase()
.toLowerCase()
.includes()
Но сначала поговорим о свойствах и методах в целом.
- Свойство — это характеристика объекта. Например,
длина строки
. - Метод — это действие, которое можно выполнить над объектом. Например,
преобразовать строку в верхний регистр
.
1. Свойство .length
Это свойство возвращает количество символов в строке, включая пробелы и специальные символы.
Пример:
let text = 'Я изучаю JavaScript'; console.log(text.length); // Выведет: 18
Практика:
Попробуйте написать функцию, которая проверяет, является ли строка пустой:
function isEmpty(str) { return str.length === 0; } console.log(isEmpty('')); // true console.log(isEmpty('Hello')); // false
2. Метод .toUpperCase()
Этот метод преобразует все символы строки в верхний регистр.
Пример:
let word = 'Максим'; console.log(word.toUpperCase()); // 'МАКСИМ'
Исходная строка не изменяется! Метод возвращает новую строку.
Задача:
Напишите функцию, которая принимает имя и возвращает его в верхнем регистре:
function shoutName(name) { return name.toUpperCase(); } console.log(shoutName('Анна')); // 'АННА'
3. Метод .toLowerCase()
Аналогично, этот метод преобразует строку в нижний регистр.
Пример:
let phrase = 'ЭТО JavaScript!'; console.log(phrase.toLowerCase()); // 'это javascript!'
Практика:
Создайте форму ввода, которая сохраняет данные в нижнем регистре:
let userInput = prompt('Введите ваш email: '); let normalizedEmail = userInput.toLowerCase(); console.log(normalizedEmail); // например, 'test@mail.ru'
4. Метод .includes()
Этот метод проверяет, содержит ли строка указанную подстроку. Возвращает true
или false
.
Синтаксис:
строка.includes(искомая_подстрока, позиция_начала_поиска);
Пример:
let text = 'JavaScript — мощный язык'; console.log(text.includes('мощный')); // true console.log(text.includes('Python')); // false
Особенности:
- Поиск чувствителен к регистру:
'Максим'
≠'максим'
. - Можно указать позицию начала поиска.
Задача:
Напишите функцию, которая проверяет, содержит ли комментарий запрещенное слово:
const forbiddenWords = ['спам', 'реклама']; function hasForbiddenWords(comment) { return forbiddenWords.some(word => comment.toLowerCase().includes(word)); } console.log(hasForbiddenWords('Это реклама!')); // true
Иммутабельность строк
Запомните: строки в JavaScript неизменяемы (иммутабельны). Любой метод, «изменяющий» строку, на самом деле создает новую строку.
Пример:
let original = 'Hello'; let newStr = original.toUpperCase(); console.log(original); // 'Hello' console.log(newStr); // 'HELLO'
Практические задачи
Задача 1: Проверка палиндрома
Напишите функцию, которая проверяет, является ли строка палиндромом (читается одинаково слева направо и справа налево).
Решение:
function isPalindrome(str) { let cleaned = str.toLowerCase().replace(/ /g, ''); return cleaned === cleaned.split('').reverse().join(''); } console.log(isPalindrome('А роза упала на лапу Азора')); // true
Задача 2: Форматирование имени
Создайте функцию, которая принимает имя и фамилию и возвращает их в формате «Фамилия, И.».
Решение:
function formatName(firstName, lastName) { return `${lastName.toUpperCase()}, ${firstName[0].toUpperCase()}.`; } console.log(formatName('Максим', 'Габов')); // 'ГАБОВ, М.'
Задача 3: Поиск email в тексте
Напишите функцию, которая находит все email-адреса в тексте (упрощенный вариант).
function findEmails(text) { return text.match(/[\w.-]+@[\w.-]+\.\w+/g) || []; } let sampleText = 'Пишите на test@mail.ru или support@google.com'; console.log(findEmails(sampleText)); // ['test@mail.ru', 'support@google.com']
Заключение
Сегодня мы разобрали ключевые методы работы со строками. Это основа, которая пригодится в любом проекте, от валидации форм до сложных текстовых обработок.
Главное запомнить:
- Строки неизменяемы.
.length
— свойство, а не метод..includes()
чувствителен к регистру.
Попробуйте модифицировать задачи или создать свои.
Хотите продолжить обучение? Переходите к полному курсу по JavaScript для начинающих. Уроки 1-30 ждут вас!