// ① if (value) { // 処理 } // ② if (value == true) { // 処理 } ある日ふと、上記①②の結果が異なることに気づく。 勝手にキャストされるんでしょ?と横柄にも思っていたけれど、どうもそうではないらしい。 当たり前だけど、数値⇔文字が自由に行き来するからといって、全ての型がそういうわけでもないのです。 どういう挙動なのだろうと不信に思ってしまったので、いろんな型の判定について調べてみる。 対象とするのは、undefined、null、数値(1、123、0、NaN)、文字("abc"、"1"、"123"、"0"、"")、日付、論理値(true、false)、オブジェクト型、配列、関数です。 テスト結果。 まとめ 前述の通り、if(value)と(value==true)は結果が異なる。一致させるためには、Boolean(value)を使って明
![[javascript]true or false](https://cdn-ak-scissors.b.st-hatena.com/image/square/a0a954e38a77f9cd9c0c6094a9872c1817374cda/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEhxovAkQV7_igscLPPdUhCRdl5Fqr-sEnNq_kcUUcETunOinoFE6usFjKOQz32tEyeXjn9Yh2pWpVJJFbqhYxaGYK8F_XsTKwcd5ZUbsa0Ki9l2zot45LNRiQOikoA2KSLBeAJqBrYd9qU%2Fw1200-h630-p-k-no-nu%2Ftrue_or_false.png)