Строки в JS — это не просто текст, а швейцарский нож для разработчика! Вот 10 приемов, которые сделают ваш код чище и быстрее.
1️⃣ Переворот строки в одну строку
const reverse = str => str.split('').reverse().join('');
reverse("hello"); // "olleh"2️⃣ Проверка вхождения подстроки
"hello world".includes("world"); // true✳️Быстро и читаемо!
3️⃣ Capitalize каждого слова
const toTitleCase = str => str.split(' ')
.map(word => word[0].toUpperCase() + word.slice(1).toLowerCase())
.join(' ');
toTitleCase("javascript tricks");
// "Javascript Tricks"4️⃣ Удаление пробелов
" hello world ".trim();
// "hello world"
5️⃣ Повторение строки
"hello ".repeat(3);
// "hello hello hello "
✳️Забудьте про циклы!
6️⃣ Подсчет вхождений
const count = (str, sub) => str.split(sub).length - 1;
count("hello world, hello JS", "hello"); // 2
7️⃣ Дополнение до нужной длины
"42".padStart(5, "0"); // "00042"
"7".padEnd(3, "0"); // "700"
✳️Идеально для ID и номеров!
8️⃣ Замена всех вхождений
"banana".replaceAll("a", "o"); // "bonono"
// Или через regex:
"banana".replace(/a/g, "o");9️⃣ Извлечение только букв
const onlyLetters = str => str.replace(/[^a-zA-Z]/g, '');
onlyLetters("a1b2c3"); // "abc"
✳️Regex — ваш друг!
1️⃣0️⃣ Строка в массив символов
[..."hello"];
// ['h', 'e', 'l', 'l', 'o']
✳️Spread operator творит магию!
🟧Бонус-комбо:
// Подсчет уникальных символов
const uniqueChars = str => [...new Set(str)].length;
uniqueChars("hello"); // 4
// Удаление дубликатов
const removeDupes = str => [...new Set(str)].join('');
removeDupes("hello"); // "helo"
Почему это важно⬇️
✅ Код становится короче и читабельнее
✅ Меньше багов и edge cases
✅ Лучшая производительность
✅ Проще поддержка и рефакторинг
💡 Практический совет:
Перед тем как писать свою функцию для работы со строками, проверьте — возможно, встроенный метод уже решает вашу задачу!
Частые ошибки:
❌ Забывают, что строки иммутабельны
❌ Используют циклы там, где есть методы
❌ Не знают про replaceAll и padStart
❌ Переусложняют regex там, где можно проще
📎 Статья
🎙 Новости
📝 База вопросов
