stringやらnumberやらがtruesyかfalsyかでbooleanを代入したい時があると思うが、
そういう時に
if (str) {
object.bool = true
} else {
object.bool = false
}
とか
object.bool = str ? true : false
と書くのがとても煩わしく感じた。
これは、実は
object.bool = !!str
これで対応できる。
しくみ
特別な構文を使っているとかそういうわけではない。
!str
こう書くと「””」ならtrue、「"hoge"」ならfalseになる。
それをさらに反転しているだけ。
!!str
「””」なら!true、つまりfalseが取れるというわけ