2013-07-28 7 views
5

私は!!がブール値には何も変換が、なぜこれをしたいと思うことを理解:ブール値のコンテキストで使用すると、オブジェクトをブール値に変換したいのはなぜですか?

if (!!someObject) { ... } 

あなただけ行うことができた場合:

if (someObject) { ... } 

EDIT:

をジャストに明らかに、私は単に、第2の例のコードではなく、第1の例のようにコードを書く理由を単に尋ねています。実際的な違いはありますか?

+0

参照:http://stackoverflow.com/questions/784929/what-is-the-not-operator-in-javascript –

+0

たとえば、 'return !! 5'または' !!〜arr.indexOf( n) '。 'if'文だけでなく、多くの用途があります。 – elclanrs

+1

@elclanrs私は理解していますが、最初の例での使用について具体的に尋ねていました。 –

答えて

1

これらの間には大きな違いはありません。だから、ほとんどの場合、それは個人的な好みであるか、またはその意図について明白である可能性が高い。

値がブール値として扱われる方法や時期についての不確実性や誤解の可能性があります。

しかし、両方if statementsLogical NOT operators内部ToBoolean()を使用します。

ToBoolean場合(GetValueexprRefは))true、[...]

レッツですoldValue be ToBoolean(exprのGetValue))

事業者がちょうどif文の自身の使用の上に否定してToBoolean()の2つの以上のラウンドを追加します。しかし、結果は同じです。

関連する問題