js每日一题
什么是NaN?它的类型是什么?如何可靠地测试一个值是否等于NaN?
**NaN属性表示“不是数字”的值。这个特殊值是由于一个操作数是非数字的(例如“ABC”/4)或者因为操作的结果是非数字而无法执行的。虽然这看起来很简单,但NaN有一些令人惊讶的特征,如果人们没有意识到这些特征,就会导致bug。一方面NaN的意思是“不是数字”但它的类型是,数字:console.log(typeof NaN === “number”);//llogs “true” 此外,NaN相比任何事情——甚至本身!一是false;
console.log(typeof NaN === NaN);//logs “false”
测试数字是否等于NaN的半可靠方法是使用内置函数isNaN(),但即使使用isNaN()也不是一个好的解决方案。
一个更好的解决方案要么使用value !== 值,如果该值等于NaN,那么只会生成true,另外,ES6提供了一个新的Number.isNaN()函数,它们旧的全局isNaN()函数不同,也更加可靠。
**
每天进步一点点!!!!