答えて
代わり
if(!!variable)
をテストするための理由がありますif(variable)
?if()
を使用して
号
はとにかくブールに条件を強制します、手動で行う必要はありません。構文のこの種を使用すると、たとえば、あなたが他の場所でブールを持って保証したいときは、式のtruthinessを記録したい場合は理にかなっての使用:
console.log(!!variable)
これは、あなたがtrue
やfalse
のいずれかを取得することが保証されます変数の元の値ではなく、ログに記録されます。しかし、if
の中に?違いはありません。
他の論理演算子と一緒に使うと便利です: '0 && true'は例えば0を返します。ブール値が必要な場合は、 '!! 0 && true'を試してください。 – ftor
@ LUH3417確かに。しかし、それらの両方は 'if()'の中で同じように振る舞います。これは質問が求めていたものです。 –
ダブル!
(!!
)は演算子ではありません。それはただ !二回 - 二重否定。
しかし、なぜここで具体的に使用するのですか?ブールが保証されている変数に代入されているようなものではありません。 –
これはどのようにして質問に答えますか? JFYI、質問は "この' !!演算子は何ですか?それは何ですか? " –
二重否定はBOOLする変数を変換するためのハック方法(私見)のビットです。変数に!
を使用すると、ブールに変換され、それを否定し、再度使用して '正しい'値に戻します。ジェームズが言及したように!!0 === false
if文の内部でこれを実行する理由はありません。本当にこれを行うための唯一の理由は、ロギング目的またはのためにブール値に強制することです似たよう記録された値がtrue
またはfalse
ではなく0
、空の文字列であるなど
'if(0)'と 'if(!! 0)'の相違点 –
@SergioTulentsev 'if'が値をとにかく強制するため、違いはありません。 – Anduril
これは、あなたの答えが実際の質問に答えないことを示唆する私の試みでした。 –
いいえ、ifの場合、通常、JSにそれを書き込む理由はありません。
それは多くの場合、強く型付けされた言語から来たプログラマから来て、thoses言語でBOOLへの変換を行うための一般的な簡単な方法であることができるので、私は、悪い習慣、それを呼び出すことはありません。
また、もし長期で価値のtruthinessの重要性を強調し、プログラマがトン条件を置くことを忘れなかったのを示すために使用することができます。
TL:DR:多くのことについては:それは良い習慣ではないかもしれないが、それは、あなたのチームはその練習に使用されていない場合のいずれか、悪い習慣になって、文書をそれらを訓練する、またはそれを残します。
- 1. Firebaseのキーを比較するには?</p> <pre><code>SOMETHING USERID (<- unique) TIMESTAMP (<- unique within USERID) SOMETHING: 'something', SOMETHING: 'something' </code></pre> <p>がどのように私は私のコード内の別の<code>ID</code>に<code>USERID</code>を比較することができます:
- 2. IF ... <Sql query> .... ELSE IF .... <Sql query> ... Else
- 3. JavaのClassName <Something >の<Something>は何を表していますか?
- 4. このテストは同音異義語ですか?</p> <pre><code>if((x>0 || (x<=0))) </code></pre> <p>と<code>if(true)</code>の違いは何であるいくつかの</p> <pre><code>double x; </code></pre> <p>考える
- 5. Meteorの子テンプレートは親のテンプレートヘルパーにアクセスできますか?私たちは、親テンプレートに「ショー」を割り当てた場合</p> <pre><code><template name="parent"> {{> child }} </template> <template name="child"> {{#if show}} //Do something {{/if}} </template> </code></pre> <p>:
- 6. PHP Q:変数が<?php ?>のif/elseでアクセスできない
- 7. オブジェクト参照は余分なメモリを消費しますか?</p> <pre><code>var object1 = .... // (something complexed) </code></pre> <p>これは、あなたのJSアプリケーションでメモリの<code>x</code>量を占める:
- 8. は私が==演算子</p> <pre><code>String sFloat = "0.0"; float n = Float.parseFloat(sFloat); System.out.println("n--"+n); if(n == 0){ System.out.println("inside if"); } else{ System.out.println("inside else"); } </code></pre> <p>でフロートを比較していたのコードを持っている==演算子
- 9. のPython:テキストを削除する方法についての方法があります。.. </p> <pre><code><@ """@$ FSDF >something something <more noise> </code></pre> <p>は今、私はちょうど「何かの何か」を抽出したいように、私は騒々しいdata..somethingを持って
- 10. 活字体変数はreader.onloadコンソール<code>"undefined"</code>の代わり<code>xexe</code>内
- 11. <em></em></em>場合、他<em>両方の条件がプログラムの内部<code>if</code>条件を実行した後<code>if($flw){ ... }</code></p> <p>内部で実行されているなぜならば、他の両方の条件PHP
- 12. Process.HasExitedを現在のプロセスに適用することはできますか?これはどんな意味を成してい</p> <pre><code>if (Process.GetCurrentProcess().HasExited) { // do something } </code></pre> <p>:
- 13. <代わりに&LT
- 14. lambdaがcvとrefを削除するのはなぜですか?</p> <pre><code>auto f = [](const T& var){ return var; }; </code></pre> <p><code>f</code>の戻り値の型が<code>T</code>(ない<code>const T&</code>)である理由:
- 15. なぜ '<<<'フィルタリングはgdbのnullバイトで、 '<()'はしませんか?
- 16. なぜostream :: operator <<はcharパラメータのグローバル関数ですか?
- 17. は、私が<code>AbstractSet</code>で<code>equals</code>方法は<code>Collection</code>代わりの<code>Set</code>にオブジェクト<code>o</code>を型キャストする理由を知って好奇心のJava
- 18. 私の変数のif条件をGLPKで書く方法はありますか?</p> <p><img src="https://i.stack.imgur.com/AZKEg.png" alt="enter image description here"></p> <p>情報:</p> <p>*マックス
- 19. <if><else>とregexpsを含む文字列を分割する
- 20. switchステートメントで特定のケースで複数のコードブロックを実行するにはどうすればよいですか?</p> <pre><code>switch(a) { case 0: // do something break; case 1: // do something else break; } </code></pre> <p>私は何をしたいことは例えばとき<code>a == 2</code>コードの両方のブロックを実行している:
- 21. ループのif文が==を認識しますが、<がJavascriptではなく<
- 22. なぜ "1.0" <"-1.0" <"1.1"ですか?
- 23. ジェネリック型のためのカスタムデシリアライザの作成方法私はFooのためのカスタム・ジャクソンのデシリアライザを書きたい</p> <pre><code>class <T> Foo<T> { .... } class Bar { Foo<Something> foo; } </code></pre> <p>:
- 24. たちは、キーイベントを使用して</p> <pre><code>private void KeyUp_Or_KeyDown_Event(object sender, KeyEventArgs e) { if (e.Key==Key.SomeKey) //detect key { //do something } } </code></pre> <p>をキー入力を検出することができます
- 25. if()</ dev/null
- 26. `if case`文を式として書く方法はありますか?総です</p> <pre><code>enum Type { case Foo(Int) case Bar(Int) var isBar: Bool { if case .Bar = self { return true } else { return false } } } </code></pre> <p>:
- 27. <body>を<body id "something"に変更してください。runat = "server">
- 28. 代替は「<<<」魚
- 29. なぜ[:] = 1は[:] = '1'と根本的に異なるのですか? <code>a</code>が<code>['1']</code>ある最初のケースで</p> <pre><code>a = [] a[:] = '1' </code></pre><p>と</p> <pre><code>a = [] a[:] = 1 </code></pre><p>:
- 30. LINQ ToListがここで使用されないのはなぜですか? <code>source</code>が<code>IEnumerable<T></code>ある</p> <pre><code>using(var iterator = source.GetEnumerator()) {...} </code></pre> <p>:
実際、なぜですか?私にはわかりにくいですね。他人の言うことを見るのを待つことはできません。 – duffymo
'!!'は、何かを 'bool'に変換することだけが考えられます。例えば。 'var i = !! 0; console.log(i); //偽(0の代わりに) '。 – Arg0n
この特定のケースでは、それは何の違いもありません。しかし、任意の値をブール値に変換したいときに便利です(後でデータベースに保存するなど) –