new Boolean(false)
возвращает объект , который не является нулевым.Ненулевые объекты всегда правдивы.
В результате !
любого ненулевого объекта всегда будет ложным.
Чтобы доказать это самому себе, вы можете запустить его в консоли javascript
(typeof new Boolean(false)) //"object"
Кроме того, вы можете использовать оператор strict equality
, чтобы подтвердить, что new Boolean(false)
на самом деле false
:
new Boolean(false) === false // false
Кстати, вызов функции Boolean
в качестве функции- без нового - на самом деле возвращает примитив
!Boolean(false) // true
(typeof Boolean(false)) //"boolean"