Web培训
400-996-5531
诸如将字符串’1’转换成数字1,就叫数据类型转换了。数据类型转换是比较简单的事情,只是有些取巧的办法可以节省代码。
我先假设转换前的数据做为变量a,转换后的是b.
任何类型转成字符串
最简单的办法就是b=a+”.
当然你也可以使用b=String(a).
纯数字的字符串转成number
纯数字组成的字符串是这种:’12311′
最简单的办法是b=a-0,也可以使用b=Number(a)
带字母的字符串转成number
有字母有数字的字符串,经常碰到,特别是从css里取元素坐标的时候:12px
我们要用的是12,而这个转换没什么简单的办法,就是用最原始的办法:b=parseInt(a,10)
进制转换
如十进制转成2进制,8进制,16进制;或者反过来。
这里要注意的是,十进制是一个很重要的角色,parseInt的转换结果,始终是十进制的数字。
而parseInt有第2个参数,他的作用是:指明当前字符串的进制。比如,你要把十六进制的’abcdef’转成十进制的数字,你最好这样parseInt(‘abcdef’,16)。其他进制的字符串转成十进制也是类似。
十进制转成其他进制,就得用toString了。如12345..toString(16)。
这里有两个.可不是我打多了一个哈。因为JS里面,数字后的第一个点会被当作小数点看待。所以直接12345.toString(16)是会报错的。
下面问题来了:怎么把2进制转成16进制?
直接转?对不起没这个方法,我们要先把2进制转成10进制,再从10进制转成16进制,具体代码就不写了。
小数转成整数
需要用到这个转换的,通常是要把JS计算出来的结果赋给DOM元素时。最常用的方法就是JS原生的三个Math下的方法了:floor,ceil,round.
不过floor和ceil,大家一定要注意负数时的情况,比如Math.floor(-2.678),会得到-3而不是-2,因为floor是取最小的整数。
而除了以上3个方法,还有两个直接去掉小数位的方法,即位运算符:2.678|0与2.678>>0。这两个方法需求代码量更少,结果与floor一致。
但是要注意,|与>>运算符,在用到负数上时,是往大的取而不是和floor一致了,因为,它们只是单纯的直接去掉小数位
转成指定位数的小数
前提当然是数字类型才能转换成小数,而且数字转换成小数是Number类型自带的方法toFixed。
使用方法10..toFixed(2)或(10).toFixed(2)。
toFixed的参数是要保留的小数位数。
toFixed可以把整数转成小数,也可以把多位小数转成指定位数的小数。如(10.1232).toFixed(2)。
另外,toFixed有个小问题就是四舍五入处理得不是很准,大家感兴趣的可以搜索一下,但这个问题可以无视
类数组对象转换成数组
类数组对象是指数据排列像是数组,也可以循环,但却没有数组原生方法的对象。如获取到的DOM元素集,参数集arguments.
最简单的办法是:b=Array.prototype.slice.call(a);这也是效率最高的。
如果不用上面的办法,你也可以新建一个空数组,然后循环类数组对象,把它的元素一个个放进数组里去。但这种方式就麻烦得紧了。
数组转成字符串
用得最多的当然是数组原生的join方法了。
但如果你对数组元素之间的间隔字符没有要求的话,也可以用数组的toString()方法,会默认组成一个由,分隔元素的字符串。
而toString的取巧用法,就是 [1,2,3]+”,跟前面说的:任何类型转成字符串的方法一样。
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved