2012-02-27 8 views
9

JSLintは、以下の例の中で幾分exotic tilde operatorの私の使用が予期せぬことを主張しています。これがJSLintの限界であるかどうかは疑問です。または厳格なモード?何が他にないの?JSLintは私のティルドを期待していません

(function() { 
    'use strict'; 
    if (~'foo'.indexOf('bar')) { 
     return 'wild accusations'; 
    } 
}()); 

さらに、以下の複雑な例ではなく、シンプルなティルド演算子を使用しないでください。確かにないことに正当な理由があるはずですか? JSLint Docsから

if ('foo'.indexOf('bar') >= 0) { … } 
+3

の下でそれを有効にすることができます。 – MrBoJangles

+0

'ビット単位の演算子を許可する '('〜 'はビット単位の演算子です)を有効にする必要があります。それを使わない理由:私はそれが一般的に使用されているとは思わないし、理解するのが難しいですが(それは私だけかもしれない)。演算子自体の理解だけでなく、数値表現*も理解する必要があるだけで、 '-1 'はすべてのビットが' 1 'に設定されて表現される(したがって、補数は' 0' - '' false') 。 –

+0

〜はビット単位ではないので、JS 0-> TRUE!0-> FALSE、〜〜> 0 ... clever –

答えて

6

ビット演算子

JavaScriptは、整数型を持っていないが、それはビット演算子を持っていません。ビット単位の演算子は、オペランドを浮動小数点から整数および逆に変換するので、C言語や他の言語ほど効率的ではありません。ブラウザアプリケーションではほとんど役に立ちません。論理演算子との類似性は、いくつかのプログラミングエラーを隠す可能性があります。ビット単位のオプションでは、次の演算子を使用できます。< < >> >>>〜& |。

あなたはねえ、それは私が知らなかった何かoptions

乾杯

+0

リンクが機能していない、解決策を解答でよく更新する – sidgate

関連する問題