学習JavaScriptとこれが与えられたとき、以下の式を考えると、それがtrueと評価ことが判明:transitive([1], 1, {toString:_=>'1'});
JavaScriptの推移平等
私は理由を理解していません。
yとzが等しいことは理にかなっていますが、xとzが等しくない場合、xとyはどのように等しくなりますか?
function transitive(x,y,z) {
return x && x == y && y == z && x != z;
}
厳密な等価演算子 '==='を使用して、値だけでなく型と値の両方をチェックします。 –
私は[小さなツール](https://nem035.github.io/js-equality-algorithms/)を作ったが、役に立つかもしれない。このツールはエンジンがどのように実際に '=='と '==='を評価するのかを示します(強制的にどのようにしているのかを含む)ので、何が起こっているのかを正確に見ることができます。 – nem035
@ nem035すばらしいツール。平等チェックで何が起こっているのかを理解するのに本当に役立ちます。 – jcjunction