JavaScript trap
> Boolean(new Boolean(false))
true
> Number(new Number(0))
0
> typeof new Boolean(false)
"object"
> typeof Boolean(false)
"boolean"
> typeof new Number(0)
"object"
> typeof Number(0)
"number"
> new Boolean(false) ? "TRUE" : "FALSE"
"TRUE"
> new Boolean(false).valueOf()
false
> Boolean(new Boolean(false))
true
Function の Boolean
, Number
は primitive type を返す。
Constructor の方は wrapper type になる。
関数 Number
は 内部の primitive value へを返すが、関数 Boolean
は 判定結果を primitive type で返す。
wrapper type の Boolean
を条件式で使うと期待する結果にならない可能性がある。