falseが詰まった変数を波括弧で囲んでしまい、なんでfalseなのにtrueとして判断されちゃうのかな〜と5分くらい詰まったのでメモ。
falseを波括弧で囲んだコードがあるとする。
サンプルコード
const thisIsFalse = false
if ({thisIsFalse}) {
console.log("HOGE");
} else {
console.log("HUGA");
}
console.log({thisIsFalse})
実行するとこんな感じに出力される。
HOGE
[object Object]
JavaScriptのif文は、Falsy
である値以外は全てTruthy
として判断されるらしい。
今回の例ではFalsy
として判断される8つ全てに当てはまらなかったため、Truthy
として判断されたようだ。