JScript 演算子

Microsoft®JScript® (以下 JScript) には、算術演算子、論理演算子、ビット演算子、代入演算子などの演算子が用意されています。

算術演算子

説明 記号
単項マイナス符号 -
インクリメント ++
デクリメント --
乗算 *
除算 /
剰余 %
加算 +
減算 -

論理演算子

説明 記号
論理 NOT !
より小さい <
より大きい >
より小さいか等しい <=
より大きいか等しい >=
等しい ==
等しくない !=
論理 AND &&
論理 OR ||
条件演算子 ?:
カンマ ,
等しい ===
等しくない !==

ビット演算子

説明 記号
ビットごとの NOT ~
ビットごとの左シフト <<
ビットごとの右シフト >>
符号なしの右シフト >>>
ビットごとの AND &
ビットごとの XOR ^
ビットごとの OR |

代入演算子

説明 記号
代入 =
複合代入 OP=

その他の演算子

説明 記号
削除 delete
型調査 typeof
void void
instanceof instanceof
new new
in in

== (等価) 演算子では、等しいかどうかを調べる前に、異なる型の値を強制的に変換する処理が行われる点が === (厳密等価) 演算子と異なります。たとえば、等価演算子では文字列 "1" と数値の 1 の比較結果は true となります。厳密等価演算子では、このような異なる型同士の比較の際の型の強制変換は実行されません。そのため、文字列 "1" と数値の 1 は等しいとは見なされません。

プリミティブな文字列、数値、およびブール値の比較は、値渡しで行われます。値が同じ場合は等しいものとして処理されます。オブジェクト (Array、Function、String,、Number、Boolean、Error、Date、および RegExp オブジェクト) の比較は、参照渡しで行われます。これらの型の場合、2 つの変数の値が同じであっても、まったく同一のオブジェクトを参照している場合以外は真 (true) とは見なされません。

次に例を挙げて説明します。

// 値が同じプリミティブな文字列です。
var string1 = "Hello";
var string2 = "Hello";

// 値が同じ 2 つの String オブジェクトです。
var StringObject1 = new String(string1);
var StringObject2 = new String(string2);

// これは、真 (true) です。
if (string1 == string2)
     // なんらかの処理を行います (この処理は実行されます)。

// これは、偽 (false) です。
if (StringObject1 == StringObject2)
    // なんらかの処理を行います (この処理は実行されません)。

// String オブジェクトの値を比較します。
// toString() メソッドまたは valueOf() メソッドを使用します。
if (StringObject1.valueOf() == StringObject2)
     // なんらかの処理を行います (この処理は実行されます)。