Что такое явное и неявное приведение типов в 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(); неявное происходит в операторах и условиях. Из-за неожиданных результатов == используют ===, а приведение делают явно.