js之数值转换

151 阅读1分钟

在项目开发过程中,有时需要对字符串等非数字类型或非整形数值进行转换,转换为数值类型。

那么转换有哪些方法呢?下面就介绍几种:

Number

Number这个内置函数可以把非数值类型转换为数值类型,如下介绍几个常用的转换规则:

  • 数值类型的值直接转换为数值,如Number(12)转换为12
  • 布尔值true返回1,false返回0
  • null 返回0
  • undefined,返回NAN
  • 对字符串,转换规则如下:
    • 数值字符串被转换为数值,如"123"被转换为123
    • 空字符串返回0
    • 16进制转换为10进制
    • 非以上其他字符串返回NAN

parseInt

parseInt是一个专门对字符串进行数值类型转换的函数。它会忽略前面的空格,从第一个非空格字符开始算起,直到遇到第一个非数值字符。

如果第一个字符非数值、+-,则直接返回NAN。所以,空字符会返回NAN

parseInt(" 12.34") //12
parseInt("") //NAN

+

一元+运算符同Number的转换规则一样。

const str = "12"
+str //12

~~

~~可以把非整形数值类型转换为整形数值类型。

  • true返回1,false返回0
  • nullundefined返回0
  • 空字符串返回0
  • 浮点值会转换为整型数值,如~~12.4返回12
  • 对字符串的转换规则:
    • 16进制会被转换为10进制
    • 空字符串返回0
    • 浮点型字符串会返回整型数值,如~~"12.4"返回12
    • 非整型数值字符会转换为整形数值
    • 其他返回0

有什么不对之处,欢迎留言指正。