いきなりですが、このコードどう思いますか?
let a = 5;
let b = 5;
let x = a == b;
ぱっと見、
「a を x に代入して、そのxがbと同じなら結果を返す?」
みたいに読めて、
一瞬よくわからない感じがしますよね。
でも JavaScript は、ちゃんと決まった順番で処理しています。
結論から言うと
👉 このコードはこう処理されます。
a == bを先に評価- その結果(
true/false)をxに代入
つまり、
let x = (a == b);
と同じ意味です。
実際の結果を見てみる
console.log(x);
出力は:
true
💡「比較(==)は、代入(=)より先に処理される」
これが今回のポイントです。
なぜこうなるの?(優先順位の話)
JavaScript には、演算子ごとに
「どれを先に処理するか」という優先順位があります。
この2つを比べると👇
| 演算子 | 役割 | 優先順位 |
|---|---|---|
== | 比較 | 高い |
= | 代入 | 低い |
👉 比較してから、代入
テストの点数を使った例 ①
let score = 80; // ある受験者のテストの点数
let isPass = score >= 70; //合格基準の点数
これは、
score >= 70を処理する。つまり、80 > = 70 になるので、trueになるisPass =true になる
という流れ。
console.log(isPass); // true
👉 条件の結果そのものを保存できる!

不等号(<=)を使った例 ②
let a = 3;
let b = 0;
let result = a + 2 <= b;
どうなるでしょう?
JavaScriptの処理順
a + 2を処理する。つまり、3 + 2 は 5になる。5 <= bを処理する。つまり、5 <= 0 は falseになる。result =false になる。
console.log(result); // false
もし順番を間違えて読むと、
全然違う意味に見えるのがポイントです。
親切な書き方(大事)
let x = (a == b);
他の人とプログラムを共有する場面では、
カッコ(())を付けて書いてあげた方が親切だと思います。
カッコを省略した書き方は、
・処理の優先順位を完全に理解している人
・あるいは AI や、いわゆる「プロっぽい」書き方
です。
でも、実際にはすべての人が同じ理解度でコードを読むわけではありません。
だからこそ僕は、
x = (a == b);
のように、処理の順番がひと目で分かる書き方をする方が、
あとから読む人にも、自分自身にもやさしいと思っています。
プログラムは「動けばOK」ではなく、
「読めて、誤解されないこと」も大切
そんな意識でカッコを使うのは、決して初心者っぽいことではなく、
チームや未来の自分を意識した、いい書き方だと思います。
まとめ:今回の優先順位ポイント
==や>=などの 比較演算子は先に評価=(代入)は 最後x = a == bは
👉x = (a == b)と同じ- 読みにくいときは カッコを書くのが正解
自分がコードを書くときはカッコを付けて丁寧に書き、一方で省略された書き方を見たときには、
「あ、これはあの演算子の優先順位の話だな」と落ち着いて判断できるようになれたら理想的です。
