いきなりですが、このコードどう思いますか?

let a = 5;
let b = 5;

let x = a == b;

ぱっと見、

「a を x に代入して、そのxがbと同じなら結果を返す?」

みたいに読めて、
一瞬よくわからない感じがしますよね。

でも JavaScript は、ちゃんと決まった順番で処理しています。

結論から言うと

👉 このコードはこう処理されます。

  1. a == b を先に評価
  2. その結果(true / false)を x に代入

つまり、

let x = (a == b);

と同じ意味です。

実際の結果を見てみる

console.log(x);

出力は:

true

💡「比較(==)は、代入(=)より先に処理される」

これが今回のポイントです。

なぜこうなるの?(優先順位の話)

JavaScript には、演算子ごとに
「どれを先に処理するか」という優先順位があります。

この2つを比べると👇

演算子役割優先順位
==比較高い
=代入低い

👉 比較してから、代入

テストの点数を使った例 ①

let score = 80; // ある受験者のテストの点数
let isPass = score >= 70; //合格基準の点数

これは、

  1. score >= 70 を処理する。つまり、80 > = 70 になるので、trueになる
  2. isPass = true になる

という流れ。

console.log(isPass); // true

👉 条件の結果そのものを保存できる

不等号(<=)を使った例 ②

let a = 3;
let b = 0;

let result = a + 2 <= b;

どうなるでしょう?

JavaScriptの処理順

  1. a + 2 を処理する。つまり、3 + 2 は 5 になる。
  2. 5 <= b を処理する。つまり、5 <= 0 は falseになる。
  3. result = false になる。
console.log(result); // false

もし順番を間違えて読むと、
全然違う意味に見えるのがポイントです。

親切な書き方(大事)

let x = (a == b);

他の人とプログラムを共有する場面では、
カッコ(())を付けて書いてあげた方が親切だと思います。

カッコを省略した書き方は、
・処理の優先順位を完全に理解している人
・あるいは AI や、いわゆる「プロっぽい」書き方
です。

でも、実際にはすべての人が同じ理解度でコードを読むわけではありません。

だからこそ僕は、

x = (a == b);

のように、処理の順番がひと目で分かる書き方をする方が、
あとから読む人にも、自分自身にもやさしいと思っています。

プログラムは「動けばOK」ではなく、
「読めて、誤解されないこと」も大切

そんな意識でカッコを使うのは、決して初心者っぽいことではなく、
チームや未来の自分を意識した、いい書き方だと思います。

まとめ:今回の優先順位ポイント

  • ==>= などの 比較演算子は先に評価
  • =(代入)は 最後
  • x = a == b
    👉 x = (a == b) と同じ
  • 読みにくいときは カッコを書くのが正解

自分がコードを書くときはカッコを付けて丁寧に書き、一方で省略された書き方を見たときには、
「あ、これはあの演算子の優先順位の話だな」と落ち着いて判断できるようになれたら理想的です。