javascript的数值转换 number()详解
---恢复内容开始---
number() parseInt() parseFloat()这三个函都可以把数非数值转换为数值,我们看看他们的区别在哪里
一 Number()
转型函数Number()是无所不能的,他可以把任何形式的数据类型进行转型,其规则如下
1.如果是布尔值,true和false将分别转换为1和0;
2.如果是数字,只是简单的传入和返回;
3.如果是null 则转化为0.;
4.如果是undefined则返回NaN;
5.如果是字符串-----规则就更详细了:
1.如果字符串中只包含数字,(包括前面的正好和负号)则会转换为十进制,比如 “1”变成1 “,123”变成12,而“0123”则变成123注意前面的的0被忽略
2.字符串如果是空则转化为0
3.如果字符串中有上述格式之外的字符,则转为NaN;
4.如果是对象则调用valueOf()的方法,依照上述的规则进行转换
代码
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>VIDEO</title> 6 </head> 7 <body> 8 <script> 9 var num1=Number(""); 10 alert(num1);//转化为0 11 12 //code 2 13 var num2=Number("hello"); 14 alert(num2);//转化为NaN 15 //code 3 16 var num3=Number("0000222"); 17 alert(num3);//转化为222 18 //code 4 19 var num4=Number(true); 20 alert(num4);//转化1 21 22 23 24 25 26 27 </script> 28 29 </body> 30 </html>
由于Number()复杂而且不合理,处理整数的时候parseInt()更常用。parseInt()函数在转换字符串时,会忽略字符串前面的空格,知道找到第一个非空格字符。
如果第一个字符不是数字或者负号,parseInt() 就会返回NaN,同样的,用parseInt() 转换空字符串也会返回NaN。
如果第一个字符是数字字符,parseInt() 会继续解析第二个字符,直到解析完所有后续字符串或者遇到了一个非数字字符。
parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。
基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,当然,对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法。
var num1 = parseInt("AF",16); //175 var num2 = parseInt("AF"); //NaN var num4 = parseInt("sdasdad"); //NaN