Приведение типов: безопасные способы избежать неожиданностей
Разберитесь в неявном и явном приведении типов; предпочитайте понятное преобразование через Number, String и Boolean; безопасно обрабатывайте NaN.
«Приведение типов: безопасные способы избежать неожиданностей» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 3 уроков всего.
Введение
Цель: Понять, когда JavaScript преобразует типы, какие результаты получает и как использовать явные преобразования типов для предсказуемого поведения.
- Неявное и явное преобразование
- Number, String и Boolean
- Безопасная работа с NaN

Демонстрация неявного приведения типов
+ со строкой запускает конкатенацию; - и * пытаются выполнить числовое преобразование.
// Implicit coercion can surprise beginners
console.log("5" + 1);
// "51" (string concatenation)
console.log(5 + "1");
// "51" (number -> string)
console.log("5" - 1);
// 4 (string -> number)
console.log("5" * 2);
// 10 (string -> number)

Явные преобразования
Используйте Number(x), String(x) и Boolean(x) для ясности.
// Prefer explicit, readable casts
const n = Number("42");
// 42
const s = String(42);
// "42"
const t = Boolean("hi");
// true (non-empty string)
const f = Boolean("");
// false (empty string)
console.log(n, s, t, f);

Number и parseInt
Number(x) требует полностью числовую строку; parseInt разбирает только начальные цифры.
// Number vs parseInt with examples
console.log(Number("42"));
// 42 (full string must be numeric)
console.log(parseInt("42", 10));
// 42
console.log(parseInt("42px", 10));
// 42 (stops at non-digit)
console.log(Number("42px"));
// NaN (not a pure number)

Проверки NaN
Используйте Number.isNaN, чтобы проверить NaN без дополнительного приведения типов.
// NaN is "Not a Number" and is not equal to itself
const bad = Number("oops");
// NaN
console.log(bad === NaN);
// false
console.log(Number.isNaN(bad));
// true (use this)
console.log(isNaN("5"));
// false (string coerces to number 5)

Контрольный список безопасности
Безопасные шаблоны:
- Предпочитайте === и явные преобразования.
- Используйте Number(x) для числовых строк; избегайте хитрых приёмов.
- Проверяйте входные данные; после разбора проверяйте Number.isNaN.

Проверка явного преобразования
Быстрая проверка: явное числовое преобразование.

Повторение
Повторение: Неявное приведение типов может привести к неожиданностям. Предпочитайте явные преобразования с помощью Number, String и Boolean, а при необходимости используйте Number.isNaN для проверки.

Часто задаваемые вопросы
Урок «Приведение типов: безопасные способы избежать неожиданностей» бесплатный?
Да — полный текст урока «Приведение типов: безопасные способы избежать неожиданностей» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 3 уроков всего.
Чему я научусь в уроке «Приведение типов: безопасные способы избежать неожиданностей»?
Разберитесь в неявном и явном приведении типов; предпочитайте понятное преобразование через Number, String и Boolean; безопасно обрабатывайте NaN. Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать JavaScript Academy?
Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.
Сколько времени занимает урок «Приведение типов: безопасные способы избежать неожиданностей»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке JavaScript Academy?
Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Примитивы и объекты, основные типы
- typeof, истинные и ложные значения, == и ===
- Приведение типов: безопасные способы избежать неожиданностей