Короткий ответ
Нет. Boolean([]) даёт true, но [] == true — это сравнение с приведением типов по правилам Abstract Equality, и результат false.
Почему так
- При
== между объектом и boolean boolean сначала приводится к числу: true → 1.
- Далее сравнивается
[] == 1. Объект приводится через ToPrimitive → ToString([]) → "".
"" == 1 → Number("") == 1 → 0 == 1 → false.
Boolean([]);
[] == true;
[] == false;
[] == 0;
Number([]);
На собеседовании
Разделяйте truthiness (if ([])) и == coercion. Для строгих проверок используйте === и явное приведение.
Итог
Truthy ≠ == true. Пустой массив — truthy, но через == уходит в число 0.