JS中其他数据类型转为number数据类型的方法

188 阅读2分钟

JS中的数据类型

  • 基本数据类型
    • number
    • string
    • Boolean
    • null
    • undefined
  • 引用数据类型
    • 对象
      • 普通对象 {}
      • 数组 []
      • 正则 /内容/
      • math
      • 日期
    • 函数
  • symbol

number数据类型

它包括正数、负数、0 以及 NaN 都是number数据类型,那么其他的数据类型想要转化为number应该使用什么方法?

第一种方法:Number

对于基本数据类型中的其他几类:

string类型,如果里面含有特殊字符,怎么值为NaN,如果是空字符串,那么为0,如果字符串里面只有数字,那么就是这个数值

  • Number("12") //12
  • Number("12px") //NaN,含有特殊字符
  • Number("") //0
  • Number("12.2") //12.2
  • Number("12.2.2") //NaN,正常的数字不会有两个小数点

Boolean类型,如果是false,则为0,如果是true,则为1

  • Number(true) //1
  • Number(false) //0

null 和 undefined 来说

    • Number(null) //0
    • Number(undefined) //NaN

对于引用数据类型中的几种

对于引用数据类似,它都会隐实的去调用toString方法

  • 普通对象调用完就是"[object Object]",因此它是含有特殊字符的字符串,所以普通对象都是NaN
  • 数组对象调用toString方法之后需要根据数组的内容去判断值
    • [] //值为0,因此转为数字为0
    • [1] //值为1 因此转为数字为1
    • [1,2] //值为1,2 因此转为数字为NaN
Number({})  //NaN
Number([])  //0
Number([1])  //1
Number([1,2])  //NaN

第二种方法:parseInt

从左向右去解析,他的结果是一个整数,遇到特殊字符或者小数点就停止。

parseInt("12.2")   //12
parseInt("12.2px")   //12
parseInt("width:12.2px")   //NaN
parseInt(false)   //NaN
parseInt(null)   //NaN
parseInt(undefined)   //NaN
parseInt({})   //NaN
parseInt([])   //NaN

第三种方法:parseFloat

从左向右去解析,他的结果是一个浮点数,遇到特殊字符会停止,遇到第二个小数点也会停止。其余和parseInt一样

parseFloat("12")  //12
parseFloat("12.2")  //12.2
parseFloat("12.2px")  //12.2
parseFloat("width:12.2px")  //NaN
parseFloat("12.2.2")  //12.2

以上就是JS中常用的其他数据类型转为number数据类型的三种方法。