簡単に言えば、私はBoolean(something)
を完全に意識しながら頻繁にif(!!something)
を使用しますが、タイプをブール値に強制するときは、!xまたはブール値(x)を使用する方が良いですか?
もう1つを使用する理由はありますか?
簡単に言えば、私はBoolean(something)
を完全に意識しながら頻繁にif(!!something)
を使用しますが、タイプをブール値に強制するときは、!xまたはブール値(x)を使用する方が良いですか?
もう1つを使用する理由はありますか?
どちらも同じ結果です。
if(something){
// do something
}
唯一の違いはパフォーマンスの問題である可能性がありますが、どちらの方が良いかわかりません。
両方がtrue
または同じルールに基づいfalse
に評価:
必要な場合、最初のパラメータとして渡された値は、ブール値に変換されます。 valueが省略された場合、または-0、null、false、NaN、未定義、または空の文字列( "")の場合、オブジェクトの初期値はfalseです。任意のオブジェクトまたは文字列 "false"を含む他のすべての値は、初期値がtrueのオブジェクトを作成します。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean#Description
この便利な表には、これらの値をチェックすることもあります:
https://dorey.github.io/JavaScript-Equality-Table/
私は使い方はあなた/あなたのチームに依存していることと思います。 javascriptの新参者の中には、「!!
」がちょっと変わって「ハッキー」と「Boolean(value)
」が明らかになっていることがあるので、
また、if
を使用する場合は、「ブール値に変換する」(!!
を使用)する必要はありません。 if(value)
を使うことができます。値は真実値または偽値に変換されます(上のリンク先の表を参照)。
「if」条件で何かをブール値に変換する理由がありますか? 'もし(何か)'が完全に十分であれば。 – Xufox
「良い」は意見の問題です。関数が*便利です*いくつかの特定の用途がありますが、それは別の問題です。 –
@Xufox - 確認するだけで、 '!!何か 'を使うのが適切な時間はないと言っていますか? –