有四种方法可以将其他值转换为数值,分别为Number()函数、parseInt()函数、parseFloat()函数、运算符(- * /)隐式转换。其中Number()函数可以用于任何数据类型,parseInt()函数、parseFloat()函数主要用于将字符串转换为数值。
-
Number()函数:
- 数值:直接返回。
- 布尔值:true转换为1,false转换为0。
- 字符串:数值字符串转换为对应的数值,非数值字符串返回NaN,空字符串返回0。
- Undefined:返回NaN。
- Null:返回0。
- 对象:调用valueOf()方法,并按照上述规则转换返回的值。如果转换的值是NaN,则调用toString()方法,再按照转换字符串的方法转换。
-
parseInt()函数:
需要得到整数时优先使用。
字符串最前面的空格会被忽略,从第一个非空字符开始转换:如果第一个字符不是数值字符、加号或者减号,立即返回NaN(ATTENTION:空字符串返回NaN);如果是,则继续依次检测每个字符,直到字符串末尾或者碰到非数值字符。 -
parseFloat()函数:
需要得到浮点数时优先使用。
parseFloat()函数与parseInt()函数的工作方式类似。需要注意的是:只有第一次出现的小数点是有效的;十六进制数值始终返回0(REASON:parseFloat()函数只解析十进制值)。