数值转换——Number()、parseInt()和parseFloat()

来源:互联网 发布:海报设计 知乎 编辑:程序博客网 时间:2024/06/18 07:34

Number()函数的转换规则:

1.如果是Boolean值,true和false分别转换为1和0。

2.如果是数字,只是简单的输入输出。

3.如果是null值,返回0。

4.如果是undefined,返回NaN。

5.如果是字符串,遵循以下规则:

   5.1  如果字符串中只包含数字,则转换为十进制;(e.g. “123”——123,“011”——11)

   5.2  如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值;

   5.3  如果字符串中包含有效的十六进制格式,如“0xf”,则将其转换为相同大小的十进制整数值;

   5.4  如果字符串是空的,则将其转换为0

   5.5  如果字符串中包含除上述格式外的字符,则转换为NaN。

6.如果是对象,则调用对象的valueOf()方法,然后按照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再按照前面的规则转换返回的字符串值。

parseInt()在转换字符串时,如果第一个字符不是数字字符或者“-”则返回NaN(转换空字符时返回NaN),然后依次解析直至完成或者遇到非数字字符(小数点不是有效的数字字符)。可以识别八进制和十六进制。该函数还可以传入第二个参数,表示转换时使用的基数(即进制数)。

parseFloat()类似,有两点区别:1.字符串中的第一个小数点是有效的,第二个无效。2.始终都会忽略前导的0,即十六进制格式的字符串始终会被转换为0,如parseFloat(0xA);//0。


阅读全文
1 0