2016-10-19 4 views
0

簡単に言えば、私はBoolean(something)を完全に意識しながら頻繁にif(!!something)を使用しますが、タイプをブール値に強制するときは、!xまたはブール値(x)を使用する方が良いですか?

もう1つを使用する理由はありますか?

+2

「if」条件で何かをブール値に変換する理由がありますか? 'もし(何か)'が完全に十分であれば。 – Xufox

+0

「良い」は意見の問題です。関数が*便利です*いくつかの特定の用途がありますが、それは別の問題です。 –

+0

@Xufox - 確認するだけで、 '!!何か 'を使うのが適切な時間はないと言っていますか? –

答えて

0

どちらも同じ結果です。

if(something){ 
    // do something 
} 

唯一の違いはパフォーマンスの問題である可能性がありますが、どちらの方が良いかわかりません。

0

両方が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)を使うことができます。値は真実値または偽値に変換されます(上のリンク先の表を参照)。

関連する問題