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