Выполнял задачи по javascript, написать функцию multiplyNumeric которая принимает на вход объект и возвращает объект в котором все числовые значения у свойств умножены на 2. В Столкнулся с магией, в условии до использования метода isNaN, я указал в нем, obj[key] == NaN, функция в принципе делало свое дело, значения стали 2x, но свойство title стал NaN, , даже при строгом === в условии, он получается NaN, ведь нигде не присваивалось в это свойство. Почему же title стал NaN?
var image = {
width: 100,
height: 400,
title: 'Cool image'
};
function multiplyNumeric(obj) {
for(var key in obj) {
if(isNaN(obj[key])) { // при : obj[key] ==(===) NaN; title становиться NaN
continue;
} else {
obj[key] *= 2;<code>
}
return obj;
}
console.log(mmultiplyNumeric(image));
// Object {width: 200, height: 800, title: NaN} Если проверить как ( obj[key] ==(===) NaN);
//Object {width: 200, height: 800, title: "Cool image"} С проверкой isNaN.