ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript_javascript スキルでよく使用される演算子の概要

JavaScript_javascript スキルでよく使用される演算子の概要

WBOY
WBOYオリジナル
2016-05-16 17:56:551025ブラウズ
1. 単項演算子
1. 削除演算子: 以前に定義されたオブジェクトのプロパティまたはメソッドへの参照を削除します。例:
var o=new Object;
o.name="superman";
alert(o.name); // 出力 "superman"
delete
alert (o.name); //出力 "未定義"
name 属性を削除し、未定義 (つまり、作成された初期化されていない変数の値) に設定します。 delete は、開発者によって定義されていない (つまり、ECMAScript によって定義されている) プロパティとメソッドを削除できません。
たとえば、次のコードはエラーを引き起こします: delete o.toString();
2. void 演算子: 任意の値に対して unknown を返します。この演算子は通常、出力すべきでない値の出力を避けるために使用されます。
例: HTML ページで Click Me
リンクをクリックすると、Web ページ内のリンクが表示されなくなります。そして、「[オブジェクト]」という表示が表示されます(IEでは「[オブジェクトウィンドウ]」がFirefoxでは表示され、リンクはGoogleでも同じです)。 window.open() メソッドは新しく開かれたウィンドウへの参照を返すためです。次に、オブジェクトは表示される文字列に変換されます。この結果を回避するには、 void 演算子を使用して window.open() 関数を呼び出すことができます。
Click Me< / a>
これにより、window.open() 呼び出しが unknown を返します。これは有効な値ではないため、ブラウザ ウィンドウには表示されません。
3. 前置インクリメント/前置デクリメント演算子: 使用法は C と同じです。演算は式が評価される前に行われます。例: i; --i。
4. 後置インクリメント/ポストデクリメント演算子: 後置演算子は、それらを含む式を計算した後にインクリメントまたはデクリメント演算を実行します。例: 私は--。
5. 単項加算と単項減算
単項加算は基本的に数値には影響しません: var iNum=25; iNum= iNum; // 25 個の単項加算演算子のペアを出力します。文字列の場合、文字列の計算方法は parseInt() と似ています。主な違いは、「0x」で始まる文字列 (16 進数を表す) の場合、単項演算子はそれを 10 進数値に変換できることです。したがって、「010」を単項加算で変換すると常に 10 になりますが、「0xB」は 11 に変換されます。
var sNum="25"; alter(typeof sNum); //「文字列」を出力
var iNum= sNum; alter(typeof iNum) //単項減算は対数値です負の場合、単項加算演算子と同様に、単項減算演算子も文字列を近似数値に変換し、値を否定します。
var sNum = "25"; alter(typeof sNum); //"string" を出力
var iNum = -sNum; //"-25" を出力
alert(typeof iNum) ); //出力 "数値"

2. ビット演算子: バイナリに関する一連の演算子ですが、実際の演算ではほとんど使用されないようなので省略しました... NOT 演算子は次のように表されます。否定記号 (~)。
ビット単位の演算子 AND はアンパサンド (&) で表されます。 ビット単位の演算子 OR は記号 (|) で表されます。 ビット単位の演算子 XOR は記号 (^) で表されます。
左シフト演算は、2 つの不等号 (符号付き右シフト演算子は、2 つの大なり記号 (>>) で表されます。
符号なし右シフトは、3 つのより大きい記号 (>>>) で表されます。

3. ブール演算子

ブール演算子には、NOT、AND、OR の 3 種類があります。
1. 論理否定。感嘆符 (!) で表されます。この演算子は通常、ループを制御するために使用されます。論理 OR 演算子や論理 AND 演算子とは異なり、論理 NOT 演算子はブール値を返す必要があります。論理 NOT 演算子は次のように動作します: オペランドがオブジェクトの場合、false を返します。
オペランドが数値 0 の場合、true を返します。
オペランドが 0 以外の数値の場合は、false を返します。
オペランドが null の場合は、true を返します。
オペランドが NaN の場合、true を返します。
オペランドが未定義の場合はエラーとなります。
例: var b = true;
while(!b){ …… }
2. 二重アンパサンド (&&) で表される論理 AND 演算子。結果が true になる状況は 1 つだけです: true && true = true;
論理 AND 演算のオペランドは、ブール値だけでなく、任意の型にすることができます。オペランドがプリミティブ ブール値ではない場合、論理 AND 演算は必ずしもブール値を返すとは限りません。
一方のオペランドがオブジェクトで、もう一方のオペランドがブール値の場合、オブジェクトが返されます。
両方のオペランドがオブジェクトの場合は、2 番目のオブジェクトを返します。
オペランドが null の場合は、null を返します。
オペランドが NaN の場合は、NaN を返します。
オペランドが未定義の場合、エラーが発生します。
最初のオペランドが false の場合、2 番目のオペランドの値がどのようなものであっても、結果が true になることはありません。
3. 論理 OR 演算子。二重縦棒 (||) で表されます。結果が false になるケースは 1 つだけです。 false || 他のケースは true です。
論理 AND 演算子と同様に、オペランドがブール値でない場合、論理 OR 演算は必ずしもブール値を返すとは限りません。
一方のオペランドがオブジェクトで、もう一方がブール値の場合、オブジェクトはが返されます。
両方のオペランドがオブジェクトの場合は、最初のオブジェクトを返します。
オペランドが null の場合は、null を返します。
オペランドが NaN の場合は、NaN を返します。
オペランドが未定義の場合、エラーが発生します。
論理 OR も単純な演算です。論理 OR 演算子の場合、最初のオペランドの値が true の場合、2 番目のオペランドは計算されません。
4. 乗算演算子
1. アスタリスク (*) で表される乗算演算子は、2 つの数値を乗算するために使用されます。ただし、特別な値を扱う場合、ECMAScript の乗算にもいくつかの特別な動作があります。
オペランドがすべて数値の場合、通常の乗算​​演算が実行されます。結果が大きすぎるか小さすぎる場合、生成される結果は無限大または - です。無限大。
オペランドが NaN の場合、結果は NaN になります。
無限大に 0 を掛けると、結果は NaN になります。
無限大に 0 以外の数値を乗算すると、結果は第 2 オペランドの符号によって決まる無限大または -無限大になります。
2. スラッシュ (/) で表される除算演算子は、最初の数値を 2 番目の数値で除算します。特殊な値の場合、特殊な動作は次のとおりです。
オペランドがすべて数値の場合、結果が大きすぎるか小さすぎる場合、生成される結果は Infinity または -Infinity です。
オペランドが NaN の場合、結果は NaN になります。
0 を無限大ではない数値で割ると、結果は NaN になります。
無限大は 0 以外の数値で除算され、結果は第 2 オペランドの符号によって決まる無限大または -無限大になります。
3. パーセント記号 (%) で表されるモジュロ演算子。オペランドが両方とも数値の場合は、通常の算術除算を実行し、剰余を返します。特別な動作:
被除数が無限大であるか、除数が 0 の場合、結果は NaN になります。
除数が無限数の場合、結果は被除数になります。
配当が 0 の場合、結果は 0 になります。
5. 加算演算子
1. 加算演算子 ( )、特殊な動作:
特定のオペランドは NaN で、結果は NaN になります。
無限大と -無限大の場合、結果は NaN になります。
オペランドの 1 つが文字列の場合、次のルールが適用されます:
両方のオペランドが文字列の場合、2 番目の文字列を最初の文字列に連結します。
一方のオペランドのみが文字列の場合、もう一方のオペランドを文字列に変換すると、結果は 2 つの文字列が連結された文字列になります。
2. 減算演算子 (-)、両方のオペランドが数値の場合、算術減算が実行されます。特別ルール:
オペランドが NaN の場合、結果は NaN になります。
オペランドは数値ではないため、結果は NaN になります。
6. 関係演算子
2 つの数値間の比較演算を実行する関係演算子「未満」、「より大きい」、「以下」、および「以上」 比較方法は同じです。算術比較演算として。各関係演算子はブール値を返します。
文字列の場合、最初の文字列の各文字のコードが、2 番目の文字列の対応する位置にある文字のコードと数値的に比較されます。
1. 大文字のコードは小文字のコードより小さいため、真のアルファベット順で比較結果を取得するには、2 つのオペランドを同じ大文字と小文字の形式に変換して比較する必要があります。
2. 文字列形式の 2 つの数値を比較する場合、文字コードが比較されます。
3. 文字列と数値を比較する場合、ECMAScript は文字列を数値に変換し、数値順に比較します。文字列を数値に変換できない場合は NaN が返され、NaN を含む関係演算はすべて false を返す必要があります。したがって、これは false を返します。
7. 等号演算子
1. 等号 (==) と不等号 (!=) は、2 つのオペランドが等しいかどうかを判断します。変換。型変換を実行するための基本的なルールは次のとおりです。
オペランドがブール値の場合は、等しいかどうかをチェックする前に数値に変換します。 False は 0 に変換され、True は 1 に変換されます。
一方のオペランドが文字列で、もう一方のオペランドが数値の場合は、等しいかどうかをチェックする前に文字列を数値に変換してみます。
一方のオペランドがオブジェクトで、もう一方のオペランドが文字列の場合は、等しいかどうかをチェックする前に、オブジェクトを文字列に変換してみます (toString() メソッドを呼び出します)。
一方のオペランドがオブジェクトで、もう一方のオペランドが数値の場合は、等しいかどうかをチェックする前にオブジェクトを数値に変換してみます。
この演算子は、比較を行うときに次のルールにも準拠します:
値 null と unknown は等しいです。
等価性をチェックする場合、null と unknown を他の値に変換することはできません。
オペランドが NaN の場合、等号は false を返し、等号以外は true を返します。両方のオペランドが NaN であっても、規則に従って NaN は NaN と等しくないため、等号は false を返します。
両方のオペランドがオブジェクトの場合、それらの参照値が比較されます。 2 つのオペランドが同じオブジェクトを指している場合、等号は true を返します。それ以外の場合、2 つのオペランドは等しくありません。


2. 合同符号と非合同符号
等号と非合同符号の同じ種類の演算子は合同符号と非合同符号です。これら 2 つの演算子は、等しいかどうかをチェックする前に型変換を実行しないことを除いて、等号および不等号と同じことを行います。
合同符号は 3 つの等号 (===) で表され、型変換なしでオペランドが等しい場合にのみ true を返します。
var sNum===iNum; //「true」を出力します。
alert(sNum===iNum); //「false」を出力します。不一致記号は、2 つの感嘆符と 2 つの等号 (!==) で表され、型変換なしでオペランドが等しくない場合にのみ true を返します。
var sNum="55"; var iNum=55;alert(sNum != iNum); //「false」を出力します。
alert(sNum !== iNum); //「true」を出力します。
8. その他の演算子
1. 条件演算子、つまり 3 項演算子: 変数 = boolean_value : false_value; 複合代入演算子: =、-= , *=, /=, %=, <<=, >>=, >>>= 3. カンマ演算子 カンマ演算子はステートメント内で使用できます。 複数の演算を実行します。 例: var iNum1=1,iNum2=2;