number(数字类型)

数字类型包含:常规数字、NaN

1、NaN

  NaN:not  a  number(不是一个数,但是它属于数字类型)

  NaN和任何值(包含自己)都不相等,NaN != NaN, 所以我们不能用相等的方式判断是否为有效数字

2、isNaN

  isNaN:检测一个值是否为非有效数字,如果不是有效数字返回true,反之为有效数字返回false

  isNaN(10)  // false

  isNaN('aa')  // true

  isNaN('10')  // false

  在使用isNaN进行检测的时候,首先会验证检测的值时候为数字类型,如果不是,先基于Number()这个方法,把值转换成数字类型,然后再检测

3、Number把其他类型值转换为数字类型

  (1)通过Number把字符串转为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是NaN;空字符串会转化为数字零

    Number("12.5")  // 12.5

    Number("12.5px")  // NaN

    Number("12.5.5")  // NaN

    Number("")  // 0

  (2)把布尔值转为数字

    Number(true)  // 1

    Number(false)  // 0

  (3)把null和undefined转为数字

    Number(null)  // 0

    Number(undefined)  //NaN

  (4)把引用类型数据转换为数字,是先把他基于toString方法转换为字符串,然后再转换为数字

    Number({name: '10'})  // NaN    

    {name: "10"}.toString()  //  "[object Object]"

    Number([ ])  // 0 

    Number([12, 23])  // NaN

     [ ].toString()  // ""

    [12, 23].toString()  // "12,23"

4、parseInt和parseFloat把字符串转成数字

  也是转换为数字的方法,如果参数不是字符串,会先转成字符串,对于字符串来说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找,把找到的当做数字返回

  parseInt("12.5px")  // 12

  parseFloat("12.5px")  // 12.5

  parseFloat(true)  // NaN

  

原文地址:https://www.cnblogs.com/cuishuangshuang/p/14635087.html