Any object whose value is not undefined or null, including a Boolean
object whose value is false, evaluates to true when passed to a
conditional statement.
From https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Boolean
The global function Boolean() can be used for type casting when called without new, eg
var foo = Boolean(param); // equivalent to `var foo = !!param`
When called with new, a wrapper object will be created additionally, which means that you can assign arbitrary properties to the object:
var foo = new Boolean(param); // equivalent to `var foo = Object(Boolean(param));`
console.log(foo === true) // true, because object - true
foo.prop1 = 'test';