数据转换的规则汇总

来源:互联网 发布:中国建筑业数据库 编辑:程序博客网 时间:2024/06/08 00:00

数值转换

有3个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。第一个函数,即转型函数Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。这3个函数对于同样的输入会有返回不同的结果。

Number()函数的转换规则如下。

如果是Boolean值,true和false将分别被转换为1和0。如果是数字值,只是简单的传入和返回。如果是null值,返回0。如果是undefined,返回NaN。

如果是字符串,遵循下列规则:

如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换会变成1,"123"会变成123,而"011"会变成11(注意:前导的零被忽略了);如果字符串中包含有效的浮点格式,如"1.1",则将其转换为对应的浮点数值(同样,也会忽略前导零);如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整数值;如果字符串是空的(不包含任何字符),则将其转换为0;如果字符串中包含除上述格式之外的字符,则将其转换为NaN。如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的 toString()方法,然后再次依照前面的规则转换返回的字符串值。

根据这么多的规则使用Number()把各种数据类型转换为数值确实有点复杂。下面还是给出几个具体的例子吧。

var num1 = Number("Hello world!");    //NaNvar num2 = Number("");    //0var num3 = Number("000011");    //11var num4 = Number(true);    //1
1 0
原创粉丝点击