厳密等価演算子
いわゆる、私たちがイメージしているイコールに近い。
オペランド、演算される値の型が違う場合は違うものとして扱われる。
等価演算子
厳密でなくいうと演算される値の型が違っても、ざっくり見た目が同じなら同じものとして扱われる。公式の説明で言うと、オペランド同士が違う場合は型変換が行われ比較される。
console.log(1 == 1);
// これがtrueなのはわかる
console.log("1" == 1);
// こちらもなんとtrue
console.log(0 == false);
// これまでtrue
その他の事例は以下
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Equality
じゃあ逆に等価演算子の価値はなんなのか?をネットで探してみる
null と undefined をより簡単にチェックする場合
if (value == null) {
console.log(" null == null なら当然このメッセージが表示されるが、
undefined == null でもtrueが返され
このメッセージが表示されるため便利らしい");
}
ただこのためだけに利用する価値があるかは疑問。
ユーザーが入力するとき、入ってくるものが数値だと分かりきっており数値に変換がめんどくさいとき。
let inputNum = prompt('好きな数字を入れてね');
if (inputNum == 1) {
console.log('あなたは1を入れましたね?');
}
ただこれも入力された値を数値に変換すれば良いだけな気がする。
感想
初学者はとりあえずルールが厳しい方を選んで使ってみる。使い慣れてどうしても使いたいときだけ、もう一方のルールがゆるい方を選べば良い気がする。