Beste und / oder kürzeste Möglichkeit, einen strikten (nicht typkonvertierten) <,>, <=,> = Vergleich in Javascript durchzuführen

In Javascript wird die== Der Vergleich hat eine strikte (nicht typkonvertierende) Version:===. Gleichfalls,!= hat die strenge Form!==. Diese schützen Sie vor folgender Verrücktheit:

var s1 = "1",
    i1 = 1,
    i2 = 2;

(s1 == i1)   // true, type conversion
(s1 != i1)   // false, type conversion

(s1 === i1)  // false, no type conversion
(s1 !== i1)  // true, no type conversion

Die anderen Vergleichsoperatoren haben jedoch keine entsprechenden strengen Modi:

(s1 < i2)   // true, type conversion
(s1 <= i2)  // true, type conversion
([] < i2)   // true, wait ... wat!?

Die naheliegende Lösung scheint ziemlich ausführlich zu sein:

((typeof s1 === typeof i2) && (s1 < i2))  // false

Gibt es eine idiomatischere (oder weniger ausführliche) Möglichkeit, dies in Javascript zu tun?

Referenz: MDNVergleichsoperatoren

Antworten auf die Frage(2)

Ihre Antwort auf die Frage