webroad.online
  1. 1Веб
  2. 2HTML
  3. 3CSS
  4. 4JavaScript
  5. 5TypeScript
  6. 6Git
  7. 7Инструменты
  8. 8React
  9. 9Стейт-менеджмент
  10. 10Next.js
  11. 11Формы
  12. 12Данные и бэкенд
  13. 13SEO
  14. 14Tailwind CSS
  15. 15Анимации
  16. 16Тестирование
  17. 17Архитектура
JavaScript · Урок 5 из 17

Строки, числа и Intl

Методы на каждый день, ловушки чисел с плавающей точкой и правильное форматирование.

Обновлено

Что такое строка

Строка (string) — последовательность символов, то есть текст. Пишется в одинарных, двойных или обратных кавычках:

Синтаксис Отличие Когда
'text' — по умолчанию (соглашение в большинстве проектов)
"text" то же, что ' когда в тексте есть '
`text ${x}` шаблонная строка: подстановка + несколько строк когда текст смешивается с переменными

Строки неизменяемы: ни один метод не меняет исходную строку, все возвращают новую.

const s = 'привет'
s.toUpperCase()   // 'ПРИВЕТ'
s                 // 'привет' — без изменений

Методы на каждый день, по категориям

Нужно... Метод Пример
убрать пробелы trim(), trimStart(), trimEnd() ' a '.trim() → 'a'
изменить регистр toLowerCase(), toUpperCase() сравнения без учёта регистра
искать includes(), startsWith(), endsWith(), indexOf() email.includes('@')
извлечь slice(start, end), at(-1) 'hello'.slice(0, 3) → 'hel'
разбить / склеить split(sep) / arr.join(sep) 'a,b'.split(',') → ['a', 'b']
заменить replace(), replaceAll() 'a-b-c'.replaceAll('-', ' ')
дополнить padStart(), padEnd() '5'.padStart(2, '0') → '05'
повторить repeat(n) 'ab'.repeat(2)

slice или substring: используйте slice — он принимает и отрицательные индексы (slice(-3) = последние 3 символа).

Для сложных шаблонов (проверка, извлечение) есть регулярные выражения: /\d+/.test('abc123').

Что такое число

В JS один тип для чисел: number — 64-битное число с плавающей точкой (стандарт IEEE 754). Целые и дробные — один и тот же тип.

Знаменитое следствие:

0.1 + 0.2              // 0.30000000000000004

Это не баг JS — так работает плавающая точка почти во всех языках. Деньги храните в целых копейках (1999 вместо 19.99) и форматируйте только при выводе.

Особые значения

Значение Когда появляется Как проверить
NaN («не число») неудачное преобразование: Number('abc') Number.isNaN(x) — не x === NaN (всегда false)
Infinity 1 / 0 Number.isFinite(x)
Number.MAX_SAFE_INTEGER ~9 квадриллионов больше → bigint

Преобразования string ↔ number

Метод '42' '42px' '' Когда
Number(x) 42 NaN 0 строгое преобразование — по умолчанию
parseInt(x, 10) 42 42 NaN прочитать число в начале текста
parseFloat(x) 42 42 NaN то же, с дробной частью
+x 42 NaN 0 сокращение для Number (хуже читается)
String(n), `${n}` — — — число → текст

Значения из полей ввода и из FormData — всегда строки. Преобразуйте их явно.

Math

Math.round(2.5)   // 3
Math.floor(2.9)   // 2  (вниз)
Math.ceil(2.1)    // 3  (вверх)
Math.max(1, 5, 3) // 5
Math.min(...arr)  // минимум массива
Math.random()     // [0, 1)
(3.14159).toFixed(2)  // '3.14' — внимание, возвращает СТРОКУ

Intl — правильное форматирование без библиотек

Intl — нативный API для форматирования по языку и стране. Не пишите вручную разделители тысяч или названия месяцев.

Форматтер Для Пример (ru-RU)
NumberFormat числа, валюта, проценты 1 234,50 ₽, 45 %
DateTimeFormat даты и время 8 октября 2026 г.
RelativeTimeFormat относительное время вчера, через 3 дня
PluralRules выбор формы множественного числа 1 сообщение / 3 сообщения / 5 сообщений
ListFormat списки HTML, CSS и JS
const money = new Intl.NumberFormat('ru-RU', { style: 'currency', currency: 'RUB' })
money.format(1234.5)       // '1 234,50 ₽'

new Intl.DateTimeFormat('ru-RU', { dateStyle: 'long' }).format(new Date())
new Intl.RelativeTimeFormat('ru', { numeric: 'auto' }).format(-1, 'day')   // 'вчера'

Создавайте форматтер один раз (вне функции / компонента) и переиспользуйте — создание дорогое.

Коротко

  • Строки неизменяемы; шаблонные строки — для подстановки.
  • Один тип number; деньги — в целых; Number.isNaN для NaN.
  • Поля ввода дают строки — преобразуйте через Number().
  • Форматирование: Intl, а не ручная склейка.

Официальные источники

Упражнения

Была ли страница полезной?

Один клик — без регистрации.