来说说isNaN()和isFinite()

简朴的说isNaN()是推断一个值是否是不能被转成数字
isFinite()是和isNaN()相反的,推断一个一个值是否是能转成数字

起首,Number范例肯定是能转的,Number(1) //1
然后,数字的字符串也能转的,Number('1') //1
然后,种种能够和0等价的东西,null,”” ,false,(true == 1)…….
横竖就是根据这个思绪,下面的代码你就可以得出准确的答案

javascriptconsole.log(isNaN(NaN));    //NaN就是Not-A-Number
console.log(isNaN(undefined));//undefined什么都不是,固然也Not-A-Number.
console.log(isNaN(null));// 能转成0
console.log(isNaN(""));  // 能转成0
console.log(isNaN({}));  // 相当于undefined
console.log(isNaN([]));  // 能转成0
console.log(isNaN(new Object()));  //NaN
console.log(isNaN(new String()));  //能转成0
console.log(isNaN(new String("a"))); //转成字符串
console.log(isNaN(new Array()));  //能转成0
console.log(isNaN(new Date()));  //能转成数字
console.log(isNaN(new Date().toString()));  //转成字符串
console.log(isNaN(true));//能转成1
console.log(isNaN(0/0)); //效果就是NaN

然后说isFinite(),前面说了,和isNaN()是相反的,
要说差别的处所,isFinite()是ECMAScript2定义的,isNaN是ECMAScript1的时刻就定义了,不知道某E的老版本会不会有特殊情况涌现
代码就不贴了,逃

    原文作者:caicai
    原文地址: https://segmentfault.com/a/1190000002632851
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞