`
y1d2y3xyz
  • 浏览: 253850 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Javascript之Number

阅读更多
//一切从基础开始,之前忙于工作没时间去整理这些东西,现在就算是做个笔记
/*
alert(0.2+0.4);//这里值值总是和这俩个值的和不等
alert(0.14+0.16)//这里也是一样 输出结果并不是0.3
alert(0.2+0.2);//这里显示没有问题 输出0.4
alert(Infinity);//输出 Infinity 
alert(-Infinity);//输出 -Infinity
alert(Infinity+Infinity) //输出Infinity
alert(Infinity-Infinity) //输出 NaN
alert(2.0e+308)//输出Infinity
alert(Number.MAX_VALUE+Number.MAX_VALUE)//输出Infinity
alert(NaN==NaN);//输出false
alert(isNaN(NaN));//输出 true
alert(isNaN("120"));//输出false 说明数字形式的字符串不能通过isNaN
alert(isNaN("123fsf"));//返回false
alert(isNaN(true))//返回false 因为这里把true转换为1了
alert(isNaN(false))//返回false 因为这里把true转换为0了
*/
var s;
// Number() , parseInt() , parseFloat() 之比较
alert(Number(true)+"-"+parseInt(false))//返回 1-NaN 这说明俩个函数在对Boolen值转换的时候的不一样,Number对于true和false分别返回1和0
alert(Number(null)+"-"+parseInt(null))//返回 0-NaN
alert(Number(undefined)+"-"+parseInt(undefined))//返回NaN-NaN 说明这俩个函数在处理undefined类型时候返回结果一样
alert(Number(s)+"-"+parseInt(s))//返回NaN-NaN 说明这俩个函数在处理未被初始化变量类型时候返回结果一样
alert(Number(" ")+"-"+parseInt(" "));//0-NaN
alert(Number("123bbb")+"-"+parseInt("123vcc"));//NaN-123 说明 Number不能转换混合模式的字符串,但parseInt可以
alert(Number("0xA")+"-"+parseInt("0xA"));//10-10 都默认转换成10进制
alert(Number("070")+"-"+parseInt("070", 8));//70-56 Number转换的永远都是10进制,但parseInt可以知道转换的进制

//parseFloat 和 parseInt不同在于,parseFloat会忽略所有的前导0,同时所有16进制的值都返回为0
alert(parseFloat("12.23.33"))//输出12.23 以第一个.为准,多余的删除
alert(parseFloat("0xA"));//输出0 ,16进制的值都返回为0
alert(parseFloat("0092998.3"));//输出92998.3 ,忽略所有的前导0

//总结:在能用parseInt处理的时候就不要去用Number,在使用parseInt的时候指定基数,即使默认的10进制,这是一个好习惯

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics