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 只认第一个小数点