0

重複の可能性:
とは !! JavaScript の (そうではない) 演算子?
誰かがこの「二重否定」のトリックを説明できますか?

私は HTML5 ビデオの可能性をいじっていたので、クロスブラウザーのサポートを提供するgetUserMedia.jsに出会いました。

ライブラリがどのように機能するかを調査している (そして、requirejs モジュールで機能させようとしている) ときに、次の奇妙なif構造を見つけました。

if ( !! navigator.getUserMedia_) {
   ...

二重否定?それは何を意味し、なぜですか?以下を簡単に使用してみませんか?

if (navigator.getUserMedia_) {
   ...
4

3 に答える 3

3

!!JavaScript の二重否定は、単に値をブール型に変換します。

于 2013-01-15T17:23:48.090 に答える
2

!!通常、変数をブール値にキャストするために使用されます(ブール値のコンテキストを強制します)

、、 などfalseundefinedさまざまなタイプを評価できるため、これが使用されます。null''

を使用する!!undefinedと、次が得られます。

  1. !!undefined
  2. !true
  3. false

そのようにして、ブール値のコンテキストで評価されている場合、引数に等しいブール値を実際に取得します。

于 2013-01-15T17:23:58.603 に答える
0

これは正確には演算子ではなく、!基本的に何でもブール値に変換する同じ ( ) の 2 つです。つまり、値の二重負を取ります。

于 2013-01-15T17:24:24.613 に答える