JS のビットごとの NOT (~) 演算子と ~~ 演算子_javascript スキルの理解と分析

WBOY
リリース: 2016-05-16 18:04:08
オリジナル
1259 人が閲覧しました

次に、typeof var!==”number” の型については、演算を行う際に 32 ビットの整数データに変換しようとしますが、整数データに変換できない場合は、
に変換されます。 JS はビット単位の演算を使用します この演算を実装する簡単な方法と、その実装原理は次のように大まかに理解できます:

コードをコピーコードは次のとおりです:

var testData=-2.9;
var testResult=(typeof testData==="number"&&!isNaN(testData)&&testData!==Infinity)?(testData> ;0 )?-Math.floor(testData)-1:-Math.ceil(testData)-1:-1;

まず、データを 32 に変換しようとしているとします。整数データの場合、結果が -2 のように切り上げる必要があり、>0 の場合は、2.6->2 のように切り捨てられます。データは 32 ビットのバイナリ表現に変換できません。たとえば、~{}/~NaN ==-1; のように、NaN に変換されます。 }->-1;
Jquery では、 if(!~this.className.indexOf(str)){ //何かをする…..}; を使用すると便利です。 className.indexOf(str) が -1 より大きいか、 -1 に等しい場合、 ~-1===true;これにはクラス名 str... が含まれていないと結論付けることができます。
~~ 演算子の場合、同様に次のように表すこともできます:


コードをコピーします コードは次のとおりです:
var testData=2.1;
var testResult=(typeof testData==="number"&&! isNaN(testData)&&testData!==Infinity)?(testData>0)?Math.floor(testData): Math.ceil(testData):0;


も切り上げと切り捨てで理解されます。 ;
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート