mdoTomofumi Chiba
7/23/2025, 11:15:45 PM

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 を条件式で使うと期待する結果にならない可能性がある。

TweetBlueskyLike