← Назад к вопросам

Как работает приведение типов?

1.6 Junior🔥 181 комментариев
#JavaScript Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Приведение типов в JavaScript

Приведение типов (type coercion) — это автоматическое или явное преобразование значения из одного типа данных в другой. Это один из ключевых механизмов JavaScript, который нужно хорошо понимать для написания надёжного кода.

Два вида приведения типов

1. Неявное приведение типов (implicit coercion)

Происходит автоматически, когда JavaScript нужно сравнить или обработать значения разных типов:

// Строка + число
"5" + 3; // "53" (число преобразуется в строку)

// Логические операции
if ("hello") {
  console.log("true"); // выведет, так как непустая строка — truthy
}

// Сравнение
"5" == 5; // true (нестрогое равенство)
"5" === 5; // false (строгое равенство)

2. Явное приведение типов (explicit coercion)

Программист сам преобразует тип, используя функции или конструкторы:

// Преобразование в строку
String(123); // "123"
(123).toString(); // "123"

// Преобразование в число
Number("45"); // 45
parseInt("45px"); // 45
parseFloat("3.14"); // 3.14

// Преобразование в логическое значение
Boolean(0); // false
Boolean(1); // true
Boolean(""); // false
Boolean("text"); // true

Правила приведения типов

Преобразование к boolean:

  • Falsy значения: 0, "", null, undefined, false, NaN
  • Всё остальное — truthy

Преобразование к числу:

  • Пустая строка → 0
  • "123"123
  • true1, false0
  • null0
  • undefinedNaN

Преобразование к строке:

  • Число становится строкой: 123"123"
  • null"null"
  • undefined"undefined"
  • Объект → "[object Object]"

Лучшие практики

Используй строгое сравнение (===) — всегда предпочитай === вместо ==, чтобы избежать неожиданных приведений:

// Опасно
0 == false; // true
"" == false; // true
null == undefined; // true

// Безопасно
0 === false; // false
"" === false; // false

Явное преобразование для ясности:

// Плохо — неясное намерение
if (arr.length) {

// Хорошо — явно
if (arr.length > 0) {

// Хорошо — явное преобразование
const isValid = Boolean(value);

Знание приведения типов предотвращает баги и делает код более предсказуемым.

Как работает приведение типов? | PrepBro