演算子と式について

JavaScriptの演算子と式は、プログラムのロジックを構築する上で欠かせない要素です。
ここでは、演算子の種類と使用方法、式の評価について詳しく説明します。

演算子とは

演算子(Operator)は、変数や値に対して特定の操作を行うための記号やキーワードです。演算子は主に以下のカテゴリに分けられます。

  1. 算術演算子(Arithmetic Operators)
  2. 代入演算子(Assignment Operators)
  3. 比較演算子(Comparison Operators)
  4. 論理演算子(Logical Operators)
  5. ビット演算子(Bitwise Operators)
  6. 文字列演算子(String Operators)
  7. その他の演算子(Other Operators)

算術演算子

算術演算子は、数値の計算を行うための演算子です。

+(加算): 2つの数値を加算します。

let a = 5 + 3;
console.log(a); // 8

-(減算): 1つ目の数値から2つ目の数値を減算します

let b = 10 - 4;
console.log(b); // 6

*(乗算): 2つの数値を乗算します。

let c = 7 * 6;
console.log(c); // 42

/(除算): 1つ目の数値を2つ目の数値で除算します。

let d = 20 / 5;
console.log(d); // 4

%(剰余): 1つ目の数値を2つ目の数値で除算した余りを求めます。

let e = 10 % 3;
console.log(e); // 1

++(インクリメント): 変数の値を1増加させます。

let f = 1;
f++;
console.log(f); // 2

--(デクリメント): 変数の値を1減少させます。

let g = 2;
g--;
console.log(g); // 1

代入演算子

代入演算子は、変数に値を割り当てるために使用されます。

=(代入): 右側の値を左側の変数に代入します。

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

+=(加算代入): 左側の変数に右側の値を加算して代入します。

let y = 5;
y += 3; // y = y + 3 と同じ
console.log(y); // 8

-=(減算代入): 左側の変数から右側の値を減算して代入します。

let z = 10;
z -= 4; // z = z - 4 と同じ
console.log(z); // 6

*=(乗算代入): 左側の変数に右側の値を乗算して代入します。

let w = 6;
w *= 2; // w = w * 2 と同じ
console.log(w); // 12

/=(除算代入): 左側の変数を右側の値で除算して代入します。

let u = 20;
u /= 5; // u = u / 5 と同じ
console.log(u); // 4

%=(剰余代入): 左側の変数を右側の値で除算した余りを代入します。

let v = 10;
v %= 3; // v = v % 3 と同じ
console.log(v); // 1

比較演算子

比較演算子は、2つの値を比較して真偽値を返します。

==(等しい): 2つの値が等しい場合に true を返します(型の変換が行われる)。

console.log(5 == "5"); // true

===(厳密に等しい): 2つの値が型も含めて等しい場合に true を返します。

console.log(5 === "5"); // false

!=(等しくない): 2つの値が等しくない場合に true を返します(型の変換が行われる)。

console.log(5 != "5"); // false

!==(厳密に等しくない): 2つの値が型も含めて等しくない場合に true を返します。

console.log(5 !== "5"); // true

>(より大きい): 左側の値が右側の値より大きい場合に true を返します。

console.log(10 > 5); // true

>=(以上): 左側の値が右側の値以上である場合に true を返します。

console.log(10 >= 10); // true

<(より小さい): 左側の値が右側の値より小さい場合に true を返します。

console.log(5 < 10); // true

<=(以下): 左側の値が右側の値以下である場合に true を返します。

console.log(5 <= 10); // true

論理演算子

論理演算子は、ブール値の組み合わせを操作するために使用されます。

&&(論理積): 両方のオペランドが true の場合に true を返します。

console.log(true && false); // false

||(論理和): どちらか一方のオペランドが true の場合に true を返します。

console.log(true || false); // true

!(論理否定): オペランドのブール値を反転させます。

console.log(!true); // false

ビット演算子

ビット演算子は、ビット単位で操作を行います。

&(ビット論理積): 両方のビットが 1 の場合に 1 を返します。

console.log(5 & 1); // 1

|(ビット論理和): どちらか一方のビットが 1 の場合に 1 を返します。

console.log(5 | 1); // 5

^(ビット排他的論理和): 両方のビットが異なる場合に 1 を返します。

console.log(5 ^ 1); // 4

~(ビット否定): 各ビットを反転させます。

console.log(~5); // -6

<<(左シフト): ビットを左にシフトします。

console.log(5 << 1); // 10

>>(右シフト): ビットを右にシフトします。

console.log(5 >> 1); // 2

>>>(ゼロ埋め右シフト): 符号ビットに関係なくビットを右にシフトします。

console.log(5 >>> 1); // 2

文字列演算子

文字列演算子は、文字列の操作を行います。

+(文字列結合): 2つの文字列を結合します。

let str1 = "Hello";
let str2 = "World";
let result = str1 + " " + str2;
console.log(result); // "Hello World"

その他の演算子

その他にも、JavaScriptには様々な演算子があります。

条件(三項)演算子: 簡単な条件式を1行で書くために使用されます。

let age = 18;
let canVote = (age >= 18) ? "Yes" : "No";
console.log(canVote); // "Yes"

typeof演算子: 変数のデータ型を返します。

let num = 42;
console.log(typeof num); // "number"

instanceof演算子: オブジェクトが特定のクラスのインスタンスかどうかを確認します。

let arr = [];
console.log(arr instanceof Array); // true

式(Expression)とは

式は、値を生成する構成要素です。
式は単独で値を返すものであり、演算子を使用して複数の値を組み合わせることができます。

リテラル式

リテラル式は、固定値を直接記述する式です。

42;           // 数値リテラル
"hello"; // 文字列リテラル
true; // ブールリテラル
null; // ヌルリテラル
[1, 2, 3]; // 配列リテラル
{a: 1, b: 2}; // オブジェクトリテラル

変数式

変数式は、変数を使用して値を表す式です。

let x = 10;
x;

関数式

関数式は、関数を値として扱う式です。

function square(x) {
return x * x;
}
square(5); // 25

演算式

演算式は、演算子を使用して値を組み合わせる式です。

let a = 5;
let b = 10;
let c = a + b; // 15

論理式

論理式は、論理演算子を使用してブール値を組み合わせる式です。

let isAdult = age >= 18 && age < 65;

条件式

条件式は、条件に基づいて異なる値を返す式です。

let result = (score >= 60) ? "Pass" : "Fail";

式の評価

JavaScriptの式は、評価されて値を生成します。
評価の順序は、演算子の優先順位と結合規則に基づいて決まります。

演算子の優先順位

演算子の優先順位は、どの演算子が先に評価されるかを決定します。
優先順位が高い演算子が先に評価されます。

let result = 5 + 3 * 2; // 11

この場合、乗算(*)の方が加算(+)よりも優先順位が高いため、先に評価されます。

結合規則

結合規則は、同じ優先順位の演算子がどの方向に評価されるかを決定します。

左結合: 左から右に評価されます。

let result = 5 - 3 - 2; // 0 (5 - 3 = 2, 2 - 2 = 0)

右結合: 右から左に評価されます。

let result = 2 ** 3 ** 2; // 512 (3 ** 2 = 9, 2 ** 9 = 512)

まとめ

JavaScriptの演算子と式は、プログラムのロジックを構築する上で非常に重要な要素です。
各演算子の役割と使い方を理解し、式の評価についての知識を深めることで、
より効果的なコードを書くことができます。
これらの基礎をしっかりと身につけることで、
複雑なプログラムの開発にも対応できるようになります。
次のステップでは、これらの演算子と式を実際のプログラムでどのように使用するかを学び、
実践的なスキルを身につけていきましょう。