您的位置:首页 > Web前端 > JavaScript

js 强制类型转换

2015-11-24 15:23 471 查看
1.toString()方法

  toString()方法把数字转换成字符串有两种模式,默认模式和基模式。

默认模式:var num1=10, num2=10.0; num1.toString()=>10;num2.toString()=>10;

这是用相应的字符串输出数字值;

基数模式:var num=10; num.toString(2)=>1010(二进制数值对应的字符串); num.toString(16)=>A(十六进制数值对应的字符串); ps:颜色值也是用十六进制表示的,所以改方法非常有用;

parseInt()方法转换前会先查看0出字符是否是个有效数字(除去空格),如果不是返回NaN,不在继续,如果是有效字符继续向后查看,知道查看到非数字字符,然后截取之前的字符串转化为数字。 如果前面的字符串包含数字字面量会被正确转换成数字,比如:

parseInt('0xa')=>10;因为ox是十六进制的开头,A=10;

parseInt('12369aa')=>12369;

parseInt('aa123')=>NaN;

parseInt()方法也有基模式,和toString()的基模式功能刚好相反,parseInt()的基模式是吧其他进制的数转换成为十进制的数,比如:

parseInt('AF',16)=>175;

parseInt('10',8)=>8;

注意,如果十进制数第一个字符包含0的话转换成十进制要声明,否则是当成八进制数转的:如

parseInt('010')=>8;

parseInt('010',10)=>10;

parseFloat()的处理方式相同,但是有两点是不同的:

1.parseFloat第一个出现的小数点是合法的,第二个才是无效的, 12.22.33=>12.22;

2.parseFloat字符串必须以十进制形式表示浮点数,会忽略首字符为0的情况,比如:

parseInt('010')=>8;因为01是八进制开头

parseFloat('010')=>10;因为parseFloat必须以十进制开头,不识别其他进制开头字符串

parseInt('oxa')=10;因为0x是十六进制开头字符串

parseFloat('oxa)=0;因为parseFloat必须以十进制开头,不识别其他进制开头字符串

Number()强制转换与parseInt()和parseFloat()处理方式相似,只是它转换的是整个值而不是部分,比如:

parseInt('1.2.2')=>1; Number('1.2.2')=>NaN;

Number()的几个不常见转换:

Number(false)=>0;

Number(true)=>1;

Number(undefined)=>NaN;

Number(null)=>0;

Number(new Object())=>NaN;

String()函数和toString()很像,唯一不同点在于对null和undefined值强制转换可以生成字符串而不会报错;

String(null)=>'null';

var oNull=null;  oNull.toString()=>会报错;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js 类型转换