PassFront
  1. PassFront
  2. База знаний
  3. Основы языка

Что такое явное и неявное приведение типов в JavaScript?

Основы языка

Приведение типов — преобразование значения из одного типа в другой. Явное делает сам разработчик, неявное выполняет движок при операциях со значениями разных типов.

Явное

Number('42');   // 42
String(123);    // '123'
Boolean('');    // false
parseInt('10px'); // 10

Неявное

'5' * 2;      // 10 — строка превратилась в число
'5' + 2;      // '52' — число превратилось в строку
if ('text') {} // значение приводится к boolean

Оператор + при наличии строки склеивает, остальные арифметические операторы приводят к числу.

Нестрогое сравнение ==

== приводит операнды к общему типу, === — нет:

'1' == 1;        // true
0 == false;      // true
null == undefined; // true
null == 0;       // false
'1' === 1;       // false

Строка и число сравниваются как числа: строка преобразуется в число.

Falsy-значения

В boolean-контексте ложны: false, 0, -0, 0n, '', null, undefined, NaN. Всё остальное, включая '0', [] и {}, истинно.

Коротко для собеседования

Явное приведение — Number(), String(), Boolean(); неявное происходит в операторах и условиях. Из-за неожиданных результатов == используют ===, а приведение делают явно.

Другие вопросы раздела