とほほのJavaScript入門(演算子)

HOME > とほほのWWW入門 > とほほのJavaScript入門 > 演算子
1998年2月15日版

代入演算子

var = exp (N2/e3)
変数varexpを代入してその値を返す。 「=」は「等しい」という意味ではなく「代入する」という意味を持つ。
    xx = 5;      // xxに5が代入される
    yy = xx;     // yyにxxの値(=5)が代入される
    zz = "ABC";  // zzに文字列"ABC"が代入される
次の例は数学的には解無しとなるが、プログラミング的には「xxに、xxと2の和を代入する」という意味を持つ。
    xx = xx + 2:

算術演算子

exp1 + exp2 (N2/e3)
exp1exp2の和を返す。 文字列の場合はexp1exp2を連結した文字列を返す。 文字列と数値の場合は、数値が文字列に変換された後、連結される。
    xx = 5 + 2;        // xxに7が代入される
    xx = "ABC" + "DEF" // xxに"ABCDEF"が代入される
    xx = "123" + 5;    // xxに"1235"が代入される
exp1 - exp2 (N2/e3)
exp1exp2の差を返す。 文字列の場合は使えない。"123" - "3" が "12" にはならない。

exp1 * exp2 (N2/e3)
exp1exp2の積を返す。

exp1 / exp2 (N2/e3)
exp1exp2で割った値を返す。

exp1 % exp2 (N2/e3)
exp1exp2で割った余りを返す。

var++ (N2/e3)
var = var + 1 と同じ。

var-- (N2/e3)
var = var - 1 と同じ。

比較演算子

exp1 == exp2 (N2/e3)
exp1exp2と等しければtrue、さもなくばfalseを返す。 数値にも文字列にも使用可能。 両項の型が異なる場合は適切に暗黙の型変換が行われた後、比較される。
    if (xx == 5) {
        alert("xx is five.");
    }

exp1 != exp2 (N2/e3)
exp1exp2と等しくなければtrue、さもなくばfalseを返す。 数値にも文字列にも使用可能。

exp1 < exp2 (N2/e3)
exp1exp2より小さければtrue、さもなくばfalseを返す。 文字列の場合は辞書順の前後比較を行う。

exp1 <= exp2 (N2/e3)
exp1exp2以下であればtrue、さもなくばfalseを返す。 文字列の場合は辞書順の前後比較を行う。

exp1 > exp2 (N2/e3)
exp1exp2より大きければtrue、さもなくばfalseを返す。 文字列の場合は辞書順の前後比較を行う。

exp1 >= exp2 (N2/e3)
exp1exp2以上であればtrue、さもなくばfalseを返す。 文字列の場合は辞書順の前後比較を行う。

exp1 === exp2 (e4)
IE4.0以降で使用可能。exp1exp2の間で暗黙の型変換を行わない比較を行う。
    123 === "123"      // false
    "123" === "123"    // true

exp1 !== exp2 (e4)
IE4.0以降で使用可能。型変換を行わない比較。
    123 !== "123"      // true
    "123" !== "123"    // false

論理演算子

exp1 && exp2 (N2/e3)
exp1がtrue、かつ、exp2がtrueであればtrueを返す。
    if ((1 <= mon) && (mon <= 12)) {
        alert("xx is between 1 and 12.");
    }

exp1 || exp2 (N2/e3)
exp1がtrue、または、exp2がtrueであればtrueを返す。
    if ((xx == "ABC") || (xx == "abc")) {
        alert("xx is ABC.");
    }

!exp1 (N2/e3)
exp1がfalseであればtrueを返す。

二項演算子

exp1 ? exp2 : exp3 (N2/e3)
exp1がtrueであればexp2を、さもなくばexp3を返す。 次の例はxxが5以上であれば"big"、さもなくば"small"をyyに代入する。
    yy = (xx >= 5) ? "big" : "small";

カンマ演算子

exp1, exp2 (N2/e3)
常にexp1の値を返す。

ビット演算子

exp1 & exp2 (N2/e3)
4バイト整数と見なして各ビットをANDした結果を返す。 0x87654321 & 0xffff0000 は 0x87650000 となる。

exp1 | exp2 (N2/e3)
4バイト整数と見なして各ビットをORした結果を返す。 0x87654321 | 0xffff0000 は 0xffff4321 となる。

exp1 ^ exp2 (N2/e3)
4バイト整数と見なして各ビットをNORした結果を返す。 0x1100 ^ 0x1010 は 0x0110 となる。

~exp1 (N2/e3)
4バイト整数と見なして各ビットを反転させた結果を返す。 ~0xffff0000 は 0x0000ffff となる。

exp1 << exp2 (N2/e3)
4バイト整数と見なしてexp1exp2ビット左シフトした結果を返す。 0x87654321 << 8 は 0x65432100 となる。

exp1 >> exp2 (N2/e3)
4バイト整数と見なしてexp1exp2ビット右シフトした結果を返す。 右からは最上位のビットが埋められる。 0x87654321 >> 8 は 0xff876543 となる。

exp1 >>> exp2 (N2/e3)
4バイト整数と見なしてexp1exp2ビット右シフトした結果を返す。 右からは常に0が埋められる。 0x87654321 >>> 8 は 0x00876543 となる。

複合代入演算子

var += exp (N2/e3)
var = var + exp と同じ。

var -= exp (N2/e3)
var = var - exp と同じ。

var *= exp (N2/e3)
var = var * exp と同じ。

var /= exp (N2/e3) (N2/e3)
var = var / exp と同じ。

var %= exp (N2/e3)
var = var % exp と同じ。

var &= exp (N2/e3)
var = var & exp と同じ。

var |= exp (N2/e3)
var = var | exp と同じ。

var ^= exp (N2/e3)
var = var ^ exp と同じ。

var <<= exp (N2/e3)
var = var << exp と同じ。

var >>= exp (N2/e3)
var = var >> exp と同じ。

var >>>= exp (N2/e3)
var = var >>> exp と同じ。

Copyright(C) とほほ ( http://www2e.biglobe.ne.jp/~s-hasei/ )