JS中有三种函数可以将非数值转换成数值:Number()、parseInt()和parseFloat()。第一个函数,即转型函数Number()可以用于任何数据类型,而另外两个函数则专门用于把字符串转换成数值。这3个函数对于同样的输入会返回不同的结果。
Number()
Number()函数的转换规则如下:
•如果参数是Date对象,返回从1970年1月1日至今的毫秒数。 •如果是Boolean值,true和false将分别被替换为1和0 •如果是数字值,只是简单的传入和返回 •如果是null值,返回0 •如果是undefined,返回NaN •如果是字符串,遵循下列规则: •如果字符串只包含数字(包括十六进制格式“0x”),则将其转换成对应的十进制。 •如果字符串是空的,返回0。 •如果字符串包含其它字符,返回NaN。
•如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再依次按照前面的规则转换返回的字符串值。
"); //返回1 document.write(Number(false)+""); //返回0 document.write(Number(null)+"
"); //返回0 document.write(Number(undefined)+"
"); //返回NaN document.write(Number("001")+"
"); //返回1 document.write(Number("001.1")+"
"); //返回1.1 document.write(Number("0x10")+"
"); //返回16 document.write(Number(new String("11aa"))+"
"); //返回NaN