JavaScript pitfalls: Boolean() vs new Boolean() vs !! (not not)