JavaScript 代入演算子

2023年5月6日

English version.

代入演算子は、変数に値を代入するだけでなく、現在の変数の値に基づいて新しい値を計算するために使用されます。たとえば、加算代入演算子 += は、変数の値に別の値を加算して、その結果を変数に代入します。同様に、減算代入演算子 -= は、変数の値から別の値を減算して、その結果を変数に代入します。

利用方法

= 代入

= は、基本的な代入演算子です。= は、右辺の値を左辺の変数に代入します。

let x = 1;
console.log(x); // 1

x = 2;
console.log(x); // 2

この例では、= 代入演算子を使用して、変数 x に値 1 を代入しています。次に、同じ変数 x に値 2 を代入し、console.log 関数を使用して x の値を表示しています。

代入演算子は、単純に値を変数に代入するだけでなく、変数の現在の値に基づいて新しい値を計算することもできます。たとえば、次のようにして、変数 x の値に 1 を加算して、変数 x にその結果を代入することができます。

let x = 1;
x = x + 1;

console.log(x); // 2

この例では、x = x + 1 という式を使用して、変数 x の値に 1 を加算しています。この式は、x の現在の値に 1 を加算して、その結果を x に再代入します。代入演算子 = は、左辺の変数に右辺の式の評価結果を代入するために使用されます。

また、複数の変数に同じ値を代入する場合には、= 代入演算子を使用して、次のようにして複数の変数に同じ値を代入することができます。

let x, y, z;
x = y = z = 1;

console.log(x); // 1
console.log(y); // 1
console.log(z); // 1

この例では、= 代入演算子を使用して、変数 xy、および z に同じ値 1 を代入しています。

+= 加算して代入

+= 加算代入演算子は、左辺の変数に右辺の値を加えて、その結果を再び左辺の変数に代入する演算子です。

以下は += 演算子を使用した例です。

let x = 5;
x += 2; // x = x + 2

console.log(x); // 7

この例では、変数 x に最初に値 5 を代入し、次に += 加算代入演算子を使用して、変数 x の現在の値に 2 を加えています。最後に、変数 x の値を console.log 関数で表示しています。この場合、出力される値は 7 になります。

加算代入演算子 += は、文字列にも使用できます。文字列に += 演算子を使用すると、文字列の結合を行います。

let greeting = "Hello, ";
greeting += "world!";

console.log(greeting); // "Hello, world!"

この例では、最初に変数 greeting に文字列 "Hello, " を代入し、次に += 加算代入演算子を使用して、文字列 "world!"greeting の現在の値に結合しています。最後に、console.log 関数を使用して greeting の値を表示しています。この場合、出力される値は "Hello, world!" になります。

-= 減算して代入

-= 減算代入演算子は、左辺の変数から右辺の値を引いて、その結果を再び左辺の変数に代入する演算子です。

以下は、-= 減算代入演算子を使用した例です。

let x = 10;
x -= 3; // x = x - 3

console.log(x); // 7

この例では、変数 x に最初に値 10 を代入し、次に -= 減算代入演算子を使用して、変数 x の現在の値から 3 を引いています。最後に、変数 x の値を console.log 関数で表示しています。この場合、出力される値は 7 になります。

減算代入演算子 -= は、他の代入演算子と同様に、数値に限らず、文字列にも使用できます。ただし、文字列に対して -= 演算子を使用すると、エラーが発生します。

let str = "Hello, ";
str -= "world!";

console.log(str); // NaN

この例では、変数 str に文字列 "Hello, " を代入し、次に -= 減算代入演算子を使用して、文字列 "world!"str の現在の値から引こうとしています。しかし、文字列から文字列を引くことはできないため、結果は NaN(Not a Number)となります。

したがって、減算代入演算子 -= は、数値にのみ使用することができます。

*= 乗算して代入

*= 乗算代入演算子は、左辺の変数に右辺の値を乗じて、その結果を再び左辺の変数に代入する演算子です。

以下は *= 乗算代入演算子を使用した例です。

let x = 5;
x *= 3; // x = x * 3

console.log(x); // 15

この例では、変数 x に最初に値 5 を代入し、次に *= 乗算代入演算子を使用して、変数 x の現在の値に 3 を乗じています。最後に、変数 x の値を console.log 関数で表示しています。この場合、出力される値は 15 になります。

乗算代入演算子 *= は、他の代入演算子と同様に、文字列にも使用できます。しかし、文字列に対して *= 演算子を使用すると、エラーが発生します。

let str = "Hello, ";
str *= 3;

console.log(str); // NaN

この例では、変数 str に文字列 "Hello, " を代入し、次に *= 乗算代入演算子を使用して、文字列 "Hello, "3 回繰り返そうとしています。しかし、文字列を数値で乗算することはできないため、結果は NaN(Not a Number)となります。

したがって、乗算代入演算子 *= は、数値にのみ使用することができます。

/= 除算して代入

/= 除算代入演算子は、左辺の変数の値を右辺の値で除算して、その結果を再び左辺の変数に代入する演算子です。

以下は /= 除算代入演算子を使用した例です。

let x = 10;
x /= 2; // x = x / 2

console.log(x); // 5

この例では、変数 x に最初に値 10 を代入し、次に /= 除算代入演算子を使用して、変数 x の現在の値を 2 で除算しています。最後に、変数 x の値を console.log 関数で表示しています。この場合、出力される値は 5 になります。

除算代入演算子 /= は、他の代入演算子と同様に、数値に限らず、文字列にも使用できます。ただし、文字列に対して /= 演算子を使用すると、エラーが発生します。

let str = "Hello, ";
str /= 2;

console.log(str); // NaN

この例では、変数 str に文字列 "Hello, " を代入し、次に /= 除算代入演算子を使用して、文字列を 2 で除算しようとしています。しかし、文字列を数値で除算することはできないため、結果は NaN(Not a Number)となります。

したがって、除算代入演算子 /= は、数値にのみ使用することができます。

%= 剰余算して代入

%= 剰余代入演算子は、左辺の変数の値を右辺の値で割った余りを、再び左辺の変数に代入する演算子です。

以下は %= 剰余代入演算子を使用した例です。

let x = 10;
x %= 3; // x = x % 3

console.log(x); // 1

この例では、変数 x に最初に値 10 を代入し、次に %= 剰余代入演算子を使用して、変数 x の現在の値を 3 で割った余りを求めています。最後に、変数 x の値を console.log 関数で表示しています。この場合、出力される値は 1 になります。

剰余代入演算子 %= は、他の代入演算子と同様に、数値に限らず、文字列にも使用できます。ただし、文字列に対して %= 演算子を使用すると、エラーが発生します。

let str = "Hello";
str %= 3;

console.log(str); // NaN

この例では、変数 str に文字列 "Hello" を代入し、次に %= 剰余代入演算子を使用して、文字列を 3 で割った余りを求めようとしています。しかし、文字列を数値で割ることはできないため、結果は NaN(Not a Number)となります。

したがって、剰余代入演算子 %= は、数値にのみ使用することができます。

**= べき乗して代入

**= べき乗代入演算子は、左辺の変数を右辺の値でべき乗して、その結果を再び左辺の変数に代入する演算子です。

以下は **= べき乗代入演算子を使用した例です。

let x = 2;
x **= 3; // x = x ** 3

console.log(x); // 8

この例では、変数 x に最初に値 2 を代入し、次に **= べき乗代入演算子を使用して、変数 x3 乗しています。最後に、変数 x の値を console.log 関数で表示しています。この場合、出力される値は 8 になります。

べき乗代入演算子 **= は、ES2016で導入された比較的新しい演算子であり、すべてのブラウザでサポートされているわけではありません。したがって、使用する前にブラウザの互換性について確認する必要があります。

また、**= 演算子は、一部のブラウザでは使用できない場合があるため、代わりに Math.pow() メソッドを使用することができます。

let y = 2;
y = Math.pow(y, 3); // equivalent to y **= 3

console.log(y); // 8

この例では、変数 y に最初に値 2 を代入し、次に Math.pow() メソッドを使用して、変数 y3 乗しています。最後に、変数 y の値を console.log 関数で表示しています。この場合、出力される値は 8 になります。

したがって、べき乗代入演算子 **= は、比較的新しい演算子であるため、ブラウザの互換性に注意して使用する必要があります。

<<= 左シフトして代入

<<= 左シフト代入演算子は、左辺の変数を右辺の値のビット数だけ左にシフトし、その結果を再び左辺の変数に代入する演算子です。

以下は <<= 左シフト代入演算子を使用した例です。

let x = 5;
x <<= 2; // equivalent to x = x << 2

console.log(x); // 20

この例では、変数 x に最初に値 5 を代入し、次に <<= 左シフト代入演算子を使用して、変数 x2 ビット左にシフトしています。最後に、変数 x の値を console.log 関数で表示しています。この場合、出力される値は 20 になります。

>>= 右シフトして代入

>>= 右シフト代入演算子は、左辺の変数を右辺の値のビット数だけ右にシフトし、その結果を再び左辺の変数に代入する演算子です。

以下は >>= 右シフト代入演算子を使用した例です。

let x = 20;
x >>= 2; // equivalent to x = x >> 2

console.log(x); // 5

この例では、変数 x に最初に値 20 を代入し、次に >>= 右シフト代入演算子を使用して、変数 x2 ビット右にシフトしています。最後に、変数 x の値を console.log 関数で表示しています。この場合、出力される値は 5 になります。

---

関連記事

JavaScriptの記事一覧