在项目开发过程中,有时需要对字符串等非数字类型或非整形数值进行转换,转换为数值类型。
那么转换有哪些方法呢?下面就介绍几种:
Number
Number这个内置函数可以把非数值类型转换为数值类型,如下介绍几个常用的转换规则:
- 数值类型的值直接转换为数值,如
Number(12)转换为12 - 布尔值
true返回1,false返回0 null返回0undefined,返回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返回0null和undefined返回0- 空字符串返回
0 - 浮点值会转换为整型数值,如
~~12.4返回12 - 对字符串的转换规则:
- 16进制会被转换为10进制
- 空字符串返回0
- 浮点型字符串会返回整型数值,如
~~"12.4"返回12 - 非整型数值字符会转换为整形数值
- 其他返回0
有什么不对之处,欢迎留言指正。