Я прочитал the MDN page on the "Object.is" method. Это дает альтернативный код для браузеров, которые не обеспечивают этот метод:MDN "Object.is" альтернативное предложение
if (!Object.is) {
Object.is = function(v1, v2) {
if (v1 === 0 && v2 === 0) {
return 1/v1 === 1/v2;
}
if (v1 !== v1) {
return v2 !== v2;
}
return v1 === v2;
};
}
Вопрос прост: когда может второй «если» быть правдой?
Благодарим за внимание.
Ну, в статье говорится, что только Number.NaN! == NaN вернет true, но не NaN! == NaN ... здесь v1 протестирован против v1 ... что означает NaN против NaN или Number.NaN против числа .NaN. Я до сих пор не понимаю ... – Clem
'Number.NaN' или' NaN', не имеет значения. JavaScript имеет только один «NaN» логически. –
Для наглядности NaN === NaN будет ложным. NaN - это просто псевдоним для Number.NaN – user568109