Number类型
var box=079; //无效的八进制 自动解析为79
var box=.8 //有效 输出为0.8
var box=8.0 //自动转换为整数 8去掉0
var box=4.12e3 //相当于 4.12*1000 科学记数法 0.00004 = 4e-5
alert(0.1+0.2);  //输出0.30000000000000004  就这两个数相加这样不精准 所以不要用浮点数运算做判断
浮点数值范围可以用 Number.MIN_VALUE 和Number.MAX_VALUE获取
alert( Number.MIN_VALUE);
超出这些范围就会出现Infinity(正无穷)  -Infinity(负无穷)
isFinite(box) // 用来判断是否超出数值范围 返回false或者true

NaN 非数值是一个特殊值 表示一个本来要返回数值的操作数未返回数值的情况 例如0除以0在ECMAScript会返回NaN 不会影响程序运行 
var box=0/0;  //NaN
var box=12/0;  //Infinity
var box=12/0*0; //NaN
alert(Number.NaN); //输出NaN 
alert(NaN+1) //NaN
alert(NaN == NaN) // false
可以用isNaN() 判断是不是NaN 
alert(isNaN('25'))//25是一个字符串数值 可以转型为数值 所以返回false
alert(isNaN('string'))  //'string' 不能转型为数值  所以返回true
alert(isNaN(true))   //   true可以转型为1  false可以为0   所以返回值为false

Number() 转型为数值 可以操作任何类型
alert(Number('070'));  //70  会自动把前导0去掉 只包含数值的字符串会直接转换成十进制
alert(Number('lee12'));  // 返回NaN
alert(Number(null));      //0

parseInt()  只能转型字符串未数值
parseInt('lee')  //NaN
parseInt('12lee')  //12
parseInt(null)  //NaN
parseInt('lee12')  //NaN  如果第一个不是数值返回NaN
parseInt('12ss55add00')   //12  只要碰到非数值就截取停止
parseInt('56.12') //小数点不是数值会被停止截取   56
可以为parseInt()提供第二个参数 用于解决不同进制转换
parseInt('1f',16)  

parseFloat()用于浮点数转换 从第一位解析到非浮点数为止 不认识16进制
会把科学记数法变成普通数值
parseFloat('12.5.6')  //12.5  只认第一个小数点

 

posted on 2018-01-25 21:05  YKing_匆  阅读(113)  评论(0)    收藏  举报