2017-06-30 18 views
0

私は、ユーザーがそのフラグをチェックしてプレミアムであるかどうかをチェックする機能があります。Javascriptビット演算子を使用していないかどうかを確認するにはどうすればいいですか?

isUserPremium() { 
    return this.flags & Flags.PREMIUM; // returns true 
} 

今度は、私は別の関数をしたいと思うことをしましょう、しかし、この時間は、ユーザが自由であるかどうかをチェックするのではなく、使用を同じフラグ。私は戻り値を否定しようとしましたが、これを行うより良い方法があるかどうかを知りたいと思います。

isUserFree() { 
    return !(this.flags & Flags.PREMIUM); // returns false 
} 
+2

'return!isUserPremium()'? – zeppelin

+0

ビット演算子&整数で動作し、整数を返します。ブール演算子&&はブール値で動作し、ブール値を返します。 if(integer)がJSで動作する場合は、実際に何をしているのか分かります。 –

答えて

2

フラグが1人のオペレータに設定されていないかどうかを確認する方法はありません。後でisUserFree()の代わりに!isUserPremium()を使用することをお勧めします。別の関数から返された値を逆変換する関数を作成しないでください。ただし、セキュリティのためにこれに頼らないようにしてください。ブラウザで実行されているすべてのものを簡単に操作できます。

+0

私はフラグが設定されていないかどうかを確認できるかどうか調べるために、単純化されたサンプルを使用していました。ありがとう! – Norbert

関連する問題