(自用面试题)其他值到数值的转换规则是什么?

179 阅读1分钟

有四种方法可以将其他值转换为数值,分别为Number()函数、parseInt()函数、parseFloat()函数、运算符(- * /)隐式转换。其中Number()函数可以用于任何数据类型,parseInt()函数、parseFloat()函数主要用于将字符串转换为数值。

  • Number()函数:

    1. 数值:直接返回。
    2. 布尔值:true转换为1,false转换为0。
    3. 字符串:数值字符串转换为对应的数值,非数值字符串返回NaN,空字符串返回0。
    4. Undefined:返回NaN
    5. Null:返回0。
    6. 对象:调用valueOf()方法,并按照上述规则转换返回的值。如果转换的值是NaN,则调用toString()方法,再按照转换字符串的方法转换。
  • parseInt()函数:
    需要得到整数时优先使用。
    字符串最前面的空格会被忽略,从第一个非空字符开始转换:如果第一个字符不是数值字符、加号或者减号,立即返回NaN(ATTENTION:空字符串返回NaN);如果是,则继续依次检测每个字符,直到字符串末尾或者碰到非数值字符。

  • parseFloat()函数:
    需要得到浮点数时优先使用。
    parseFloat()函数与parseInt()函数的工作方式类似。需要注意的是:只有第一次出现的小数点是有效的;十六进制数值始终返回0(REASON:parseFloat()函数只解析十进制值)。