Najlepszy i / lub najkrótszy sposób wykonywania ścisłego (nietypowego konwertowania) <,>, <=,> = porównanie w Javascript

W Javascript:== porównanie ma ścisłą (nietypową konwersję) wersję:===. Również,!= ma ścisłą formę!==. Chronią cię przed następującym szaleństwem:

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

Jednak inne operatory porównania nie mają równoważnych trybów ścisłych:

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

Oczywiste rozwiązanie wydaje się dość gadatliwe:

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

Czy istnieje bardziej idiomatyczny (lub po prostu mniej gadatliwy) sposób wykonywania tego w JavaScript?

Odniesienie: MDNOperatory porównania

questionAnswers(2)

yourAnswerToTheQuestion