ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript学習メモ 演算子_基礎知識
1. 単項演算子
1. 自動インクリメント演算子と自動デクリメント演算子: 事前配置タイプと事後配置タイプに分かれています。
フロントタイプ: a;--a;投稿タイプ: a ;a--;
例:
そして b= j、これは j=j 1;b=j;
と同等です。
整数の場合、1 ドルを引くことは負の数を取ることと同じです。
2. ビット演算子
1. ビットごとに NOT~ (NOT)
いいえ、つまり、バイナリ形式のすべての数値を反転します。
一般的な使用法: ビット演算 NOT は、基本的に数値を否定してから 1 を減算することです
2. ビット単位の OR | (OR)
または、すべての数値とバイナリ形式のターゲット数値に対してビット単位の OR 演算を実行します。
一般的な使用法: 通常、2 進数の無条件の代入に使用されます。たとえば、数値 |1 は、現在の数値に最も近い奇数を取得することと同じです。
3. ビット単位の AND (AND)
つまり、すべての数値とバイナリ形式のターゲット数値に対してビットごとの AND 演算を実行します。
一般的な使用法: 通常、バイナリのビット取得操作に使用されます。たとえば、数値 &1、結果が 0 の場合は偶数、1 の場合は奇数です。
4. ビットごとの XOR^ (XOR)
XOR、つまり、すべての数値をバイナリ形式のターゲット数値と比較します。つまり、1 つの数値のみが 1 を格納する場合、2 つの数値が同じ場合は 0 が返されます。
が返されます。一般的な使用法: XOR 演算の逆演算そのものです。つまり、同じ数値を 2 回 XOR 演算した最終結果は変更されません。単純な暗号化または対話型の数値操作に使用できます。
5. 左に移動します
左シフト。つまり、すべての数値をバイナリ形式で対応する桁数だけ左に移動し、上位ビットをシフトアウト (破棄) し、下位ビットの空のビットを 0 で埋めます。左シフトは符号ビットに影響しません。
数学的意味: 数値がオーバーフローしない限り、正の数値と負の数値の場合、左に 1 位置シフトすることは 2 の 1 乗を乗算することと同等であり、n ビットを左にシフトすることは次と同等です。 2 の n 乗を掛けます。
6. 右に移動します
6.1 符号付き右シフト>>: バイナリ形式ですべての値を右にシフトしますが、符号ビットは保持します。
数学的意味: 数値がオーバーフローしない限り、正の数値と負の数値の場合、右に 1 位置シフトすることは 2 の 1 乗で割ることと同等であり、右に n ビットシフトすることは次と同等です。 2のn乗で割ります。
6.2 符号なし右シフト>>>: つまり、符号ビットを含むすべての値をバイナリ形式で右に移動します。
正の数の場合、>>> の結果は同じです。
負の数の場合、負の数は絶対値の補数形式で表現されるため、符号なし右シフトの結果は非常に大きくなります。
3. ブール演算子
1. 論理否定!
論理は役に立たない! ECMAScript の任意のタイプの値に適用できることを示します。論理 NOT 演算はブール値 (true/false) を返します。この演算子は、まずオペランドをブール値に変換してから、それを否定します。
Boolean() 変換関数の一連のルール。
データ型 true 値に変換 false 値に変換
ブール値 true false
文字列 空ではない任意の文字列 ""(空の文字列)
数値 ゼロ以外の任意の数値 (無限大を含む) 0 および NaN
オブジェクト 任意のオブジェクト null
未定義 なし 未定義
論理 AND には 2 つのオペランドがあります。
論理 AND 演算は、ブール値だけでなく、あらゆるタイプのオペランドに適用できます。オペランドの 1 つがブール値ではない場合、論理 AND 演算は必ずしもブール値を返すわけではなく、次の規則に従います。 1. 最初のオペランドがオブジェクトの場合は、2 番目のオペランド
を返します。
2. 2 番目のオペランドがオブジェクトの場合、最初のオペランドの評価結果が true の場合にのみオブジェクトが返されます。
3. 両方の演算子がオブジェクトの場合は、最初の規則に従って 2 番目のオペランドを返します。
4. オペランドの 1 つが null の場合、
を返します。
5. オペランドの 1 つが NaN の場合は、NaN を返します。
6. いずれかのオペランドが未定義の場合は、未定義を返します。
論理 AND 演算は短絡演算です。つまり、最初のオペランドで結果を決定できる場合、2 番目のオペランドは評価されません。 (2 つの内部戻り操作として理解できます)。したがって、ルール 4、5、および 6 が矛盾する場合は、短絡動作原則に従う必要があります。
コードをコピーします
コードは次のとおりです:
3. 論理和||
論理和には 2 つのオペランドがあります。
論理 OR は、演算がブール値だけでなくあらゆる種類のオペランドに適用できるという点で論理 AND に似ています。オペランドの 1 つがブール値ではない場合、論理 OR 演算は必ずしもブール値を返すわけではなく、次の規則に従います。
1. 最初のオペランドがオブジェクトの場合は、最初のオペランド
を返します。
2. 最初のオペランドの結果が false の場合は、2 番目のオペランド
を返します。
3. 両方の演算子がオブジェクトの場合、最初の規則に従って最初のオペランドが返されます。
4. 両方のオペランドが null の場合、
を返します。
5. 両方のオペランドが NaN の場合は、NaN を返します。
6. 両方のオペランドが未定義の場合は、未定義を返します。
論理 OR 演算は短絡演算です。つまり、最初のオペランドの結果が true の場合、2 番目のオペランドは再度評価されません。
論理和のこの機能を使用すると、変数に null または未定義の値を代入することを避けることができます
例: var myObject=firstObject||secondObject
firstObject が null でない場合、firstObject は myObject に割り当てられ、それ以外の場合は、 SecondObject の値が myObject に割り当てられます。
上記の内容はすべてこの記事に記載されています。皆様のお役に立てれば幸いです