JavaScript 演算子

JavaScript 演算子: コードロジックを掌握する中核ツール

**説明:** JavaScript における様々な演算子の機能と使用方法を深く理解し、プログラムフローの制御やデータ操作を習得します。

1. JavaScript 演算子の基礎

1.1. 演算子とは?

演算子は、プログラミング言語においてデータに対する操作を表す記号です。変数やリテラルといった被演算子に対して特定の処理を実行します。 例えば、"+" 演算子は 2 つの数値を加算する処理を行います。

1.2. 演算子の種類

JavaScript には、以下のような様々な種類の演算子が存在します。

種類 説明
算術演算子 数値計算を行う演算子 +, -, *, /, %, **
代入演算子 変数に値を代入する演算子 =, +=, -=, *=, /=
比較演算子 値を比較し、真偽値を返す演算子 ==, ===, !=, !==, >, <, >=, <=
論理演算子 真偽値を組み合わせ、真偽値を返す演算子 &&, ||, !
ビット演算子 数値をビット単位で操作する演算子 &, |, ^, ~, <<, >>, >>>
その他演算子 上記以外の特殊な演算子 ?: (三項演算子), typeof, instanceof, in, delete, new, void

<script>
  let a = 10;
  let b = 5;

  // 算術演算子
  console.log(a + b); // 15
  console.log(a - b); // 5

  // 代入演算子
  a += b; 
  console.log(a); // 15

  // 比較演算子
  console.log(a > b); // true

  // 論理演算子
  console.log(a > 10 && b < 10); // true

  // ビット演算子
  console.log(a & b); // 0
</script>

2. 演算子の優先順位と結合性

2.1. 優先順位

複数の演算子が含まれる式では、演算子ごとに決められた優先順位に従って評価が行われます。 例えば、算術演算子では */+- よりも優先順位が高く、先に計算されます。

2.2. 結合性

結合性は、同じ優先順位の演算子が複数並んだ場合に、どの順番で処理されるかを決定します。 例えば、- 演算子は左結合なので、a - b - c(a - b) - c のように計算されます。

2.3. 括弧による演算順序の制御

括弧 () を使用することで、演算子の優先順位を無視して任意の順番で評価させることができます。 例えば、(a + b) * c は、a + b が先に計算された後、c との乗算が行われます。

3. JavaScript 演算子のよくある利用シーン

3.1. 算術演算

数値計算を行う場合に利用されます。例えば、商品の合計金額や平均値の算出などに使用されます。


<script>
  const price = 1000;
  const quantity = 3;

  // 合計金額を計算
  const totalPrice = price * quantity; 
  console.log(totalPrice); // 3000
</script>

3.2. 論理判断

条件分岐や繰り返し処理など、プログラムの流れを制御する場合に利用されます。


<script>
  const score = 80;

  // スコアによってメッセージを表示
  if (score >= 90) {
    console.log("Excellent!"); 
  } else if (score >= 70) {
    console.log("Good!"); 
  } else {
    console.log("Try again."); 
  }
</script>

3.3. 代入操作

変数に値を代入する場合に利用されます。


<script>
  let name = "太郎"; 
  let age = 20; 

  // 変数の値を更新
  name = "次郎"; 
  age += 1; 
</script>

3.4. 文字列操作

+ 演算子を使用することで、文字列の結合を行うことができます。


<script>
  const firstName = "太郎";
  const lastName = "山田";

  // フルネームを作成
  const fullName = lastName + " " + firstName; 
  console.log(fullName); // "山田 太郎"
</script>

3.5. ビット操作

ビット操作は、数値を2進数表現で直接操作する場合に利用されます。


<script>
  const flag = 0b1010; // 2進数で1010

  // 2ビット目をチェック
  const isSecondBitSet = (flag & 0b0100) !== 0; 
  console.log(isSecondBitSet); // true
</script>

4. JavaScript 演算子の深掘り

4.1. 短絡評価

論理演算子 &&|| は、式の評価を途中で打ち切る「短絡評価」を行います。 && では、左辺が偽であれば右辺は評価されません。 || では、左辺が真であれば右辺は評価されません。

4.2. 型強制変換

異なるデータ型の値同士を演算する場合、JavaScript は自動的に型変換を行います。 例えば、数値と文字列を加算しようとすると、数値が文字列に変換された後、結合が行われます。

4.3. 演算子のオーバーロード

JavaScript では、演算子のオーバーロードはサポートされていません。 つまり、組み込みの演算子の動作を変更することはできません。

まとめ

JavaScript 演算子を理解することは、効率的で保守性の高いコードを書くために非常に重要です。 様々な種類の演算子の機能、優先順位、そして応用方法を学ぶことで、開発者はより柔軟にデータを操作し、複雑なプログラムロジックを実現することができます。

関連質問

Q1: JavaScript で累乗を計算するにはどうすればよいですか?

A1: ** 演算子を使用します。例えば、2 の 3 乗を計算するには 2 ** 3 と記述します。

Q2: ===== の違いは何ですか?

A2: == は値が等しいかどうかを比較しますが、=== は値とデータ型も等しいかどうかを比較します。

Q3: 短絡評価はなぜ重要なのですか?

A3: 短絡評価は、不要な処理をスキップすることでパフォーマンスを向上させることができます。 また、条件によってはエラーを回避するためにも利用されます。