资讯专栏INFORMATION COLUMN

来说说isNaN()和isFinite()

taoszu / 214人阅读

摘要:简单的说是判断一个值是不是不能被转成数字是和相反的,判断一个一个值是不是能转成数字首先,类型肯定是能转的,然后,数字的字符串也能转的,然后,各种可能和等价的东西,,反正就是按照这个思路,下面的代码你就能得出正确的答案就是什么都不是,当然

简单的说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的老版本会不会有特殊情况出现
代码就不贴了,逃

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85585.html

相关文章

  • ES6之数值的扩展

    摘要:二进制和八进制提供了二进制和八进制数值的新的写法,分别用前缀或和或表示。八进制声明八进制的英文单词是,也是以零开始的,然后第二个位置是欧,然后跟上八进制的值就可以了。用来检查一个数值是否为有限的。对于非数值,内部使用方法将其先转为数值。 二进制和八进制 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 二进制声明: 二进制的英文单词是Binar...

    xiguadada 评论0 收藏0
  • 深入理解ES6(三)(字符串的扩展)

    摘要:字符串的扩展一字符串的遍历器接口为字符串添加了遍历器接口,使得字符串可以被循环遍历。返回布尔值,表示参数字符串是否在源字符串的头部。三方法返回一个新字符串,表示将原字符串重复次。如果模板字符串中的变量没有声明,将报错。 字符串的扩展 一、 字符串的遍历器接口 ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。 for (let codePoint of foo...

    Steve_Wang_ 评论0 收藏0
  • 深入理解ES6(三)(字符串的扩展)

    摘要:字符串的扩展一字符串的遍历器接口为字符串添加了遍历器接口,使得字符串可以被循环遍历。返回布尔值,表示参数字符串是否在源字符串的头部。三方法返回一个新字符串,表示将原字符串重复次。如果模板字符串中的变量没有声明,将报错。 字符串的扩展 一、 字符串的遍历器接口 ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。 for (let codePoint of foo...

    tainzhi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<