JavaScript причудливый слабоспециализированный оператор ==
может быть легко показан как нетранзитивен следующим образом:
var a = "16";
var b = 16;
var c = "0x10";
alert(a == b && b == c && a != c); // alerts true
Интересно, есть ли какие-либо подобные трюки, которые можно играть с ошибкой округления, Infinity
или NaN
, которые могли бы показать, что ===
не является транзитивным, или если он может быть доказан, действительно, является транзитивным.