Когда мы используем оператор «меньше или равно», это работа под капотом с абстрактным алгоритмом реляционного сравнения. Например.
a <= b;
Преобразуйте в JavaScript, как это
!(b < a)
И спецификация EcmaScript говорит (http://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5), который указывает, что по крайней мере один операнд имеет значение NaN меньше, чем return undefined И это означает
var a = 1;
var b = "asd"
a < b // b.toNumber() => NaN and this is operation return undefined (false)
Если мы используем вот так
var a = 1;
var b = "asd"
a <= b // this convert to !(b < a) and (b<a) return undefined
// and !(undefined) must be true
Но спецификация EcmaScript говорит, что это возвращает false. Мне вот интересно, в чем причина?
<=
): Еслиr
равноtrue
илиundefined
, вернутьfalse
. В противном случае вернутьtrue
. - person Bergi   schedule 30.07.2019