javascript の型と真偽

if(hoge){ 〜〜; } とか (hoge)?〜〜:〜〜; とかに使うとき、typeof(hoge) が何だとどうなるか、ってメモ。

boolean true false
Number 〜-1,+1〜 0
String →以外 ""
その他 [Object] null,NaN,undefined

NaN は Number 型だったかも。
String の "0" は true になるのが落とし穴だな。

hoge を Number にする
hoge-0
hoge を String にする
hoge+""