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()=>会报错;
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()=>会报错;
相关文章推荐
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- js可突破windows弹退效果代码
- JSP脚本漏洞面面观
- 使用BAT一句话命令实现快速合并JS、CSS
- js显示当前星期的起止日期的脚本
- c#入门之类型转换详解
- 爆炸式的JS圆形浮动菜单特效代码
- C#难点逐个击破(9):类型转换
- js select常用操作控制代码
- JS实现不使用图片仿Windows右键菜单效果代码
- 从jsp发送动态图像
- 原生js结合html5制作小飞龙的简易跳球
- js 页面模块自由拖动实例
- js实现小鱼吐泡泡在页面游动特效
- js 提交和设置表单的值
- PHP VBS JS 函数 对照表
- C++中4种类型转换方式 cast操作详解
- C++中的四种类型转换