数值
主要分为:整型(1),浮点型(3.14),十六进制表示的数字(0xA),科学计数法(2.5e11)
Number引用类型
Number(value),构造函数
var num=new Number(10); //定义类型成一个对象object
var num=Number(10); //定义类型成一个Number类型
另外,Number()也可以作为一个工具函数
Number("1.1") //输出一个浮点数1.1
Number(0xA) //输出数字10
Number(true) //输出数字1,false对应为0
Number("12.a") //输出NaN,表示不是一个数值
number在构造函数上的值
Number.POSITIVE_INFINITY; //Infinity,正无穷
Number.NEGATIVE_INFINITY; //-Infinity,负无穷
Number.NaN; //NaN,表示不是一个数字
Numer.MAX_VALUE; //1.7976931348623157e+308,JS能表示的最大整数
Number.MIN_VALUE; //5e-324,JS能表示的最小整数
Number.MAX_SAFE_INTEGER; //9007199254740991,JS能精确表示的最大整数
Number.MIN_SAFE_INTEGER; //-9007199254740991,JS能精确表示的最小整数
value=Number(a);
if (value>Number.MAX_SAFE_INTEGER){
value=Number.MAX_SAFE_INTEGER;
}
假设取值到了a,将字符串a转换为数字,然后如果超出了最大上限,就将最大上线赋值给a,(注意:输入框中取到的值是字符串类型,需要用Number()将其转换)
Number构造函数上的方法,主要有:
Number.isFinite(number)
//检测传入的参数是否是一个有穷数,如果是有穷数,返回true,如果不是返回false
Number.isInterger(number)
//检测传入的参数是否为一个整数,如果是整数,返回true,如果不是返回false
Number.isSafeInyterger(number)
//检测传入的参数是否为安全的整数,安全的整数指的是上面的Number.MAX_SAFE_INTEGER,和Number.MIN_SAFE_INTEGER,转换为数值就是-2的53次方-1到2的53次方-1;如果是安全的整数,返回true,如果不是返回false
Number.isNaN(number)
//检测传入的参数是否为NaN,如果是返回true,如果不是返回false
Nunmer.parseInt(String,radix),也是数值转换整数
- 将字符串转换为整型数
- 参数,有两个,string:转换的字符串值,radix:表示输出的基数,如八进制,十六进制,默认是10
- 返回值是转换后的整型数
Number.parseInt相当于全局方法parseInt(),一般直接使用parseInt(),parseInt会检测对象的值,在遇到第一个非数值后立即返回,返回的类型是number,例如:
parseInt("1") //1;
parseInt("1.1") //1
parseInt("1.9") //1
parseInt("1a123.34") //1
parseInt("www") //NaN
Nunmer.parseFloat(String,radix),也是数值转换浮点数
- 将字符串转换为浮点数
- 参数,有两个,string:转换的字符串值,radix:表示输出的基数,如八进制,十六进制,默认是10
- 返回值是转换后的浮点数
Number.parseFloat相当于全局方法parseFloat(),一般直接使用parseFloat(),parseFloat会检测对象的值,在遇到第一个非数值后立即返回,返回的类型是number,例如:
parseInt("1") //1;
parseInt("1.1") //1.1
parseInt("1.9") //1.9
parseInt("112.3a12334") //112.3,如果是123a123,返回的是123
parseInt("www") //NaN
字符串 | parseInt(String) | parseFloat(String) | Number(value) |
"1.1" | 1 | 1.1 | 1.1 |
"1.123a" | 1 | 1.123 | NaN |
"www" | NaN | NaN | NaN |
Number原型链上的方法
Number.prototype.toFixed(fractionDigits)
将数值保留指定位数的小数位,返回的是字符串类型,参数fractionDigits表示保留的小数位(会四舍五入),例如:
var a=10.005
a.toFixed(2) //"10.01"保留2位小数
Number.prototype.toExponential(fractionDigits)
将数值转换成指数形式,返回字符串,参数fractionDigits表示小数点后数字的个数,例如:
var a=1,b=10000;
a.toExponential(1) //"1.0e+0"
b.toExponential(0) //"1e+4"
Number.prototype.toPrecision(precision)
以指定的位数返回该数值的字符串表示形式,precision表示精度位数,也会四舍五入,返回的也是字符串,例如:
var a=1.1234,b=1.5123,c=1234.5
a.toPrecision() //"1.1234"
a.toPrecision(1) //"1"
b.toPrecision(1) //"2"
c.toPrecision(2) //"1.2e+3"
Number.prototype.toString([radix])
将数值转成字符串,参数radix表示要求几进制,可以是八进制,十六进制,默认是10,返回是一个字符串,例如
var a=10;
a.toString() //10
a.toString(2) //1010
a.toString(8) //12
a.toString(10) //10
a.toString(16) //a
Math对象
Math是JS的内置对象,不是构造函数,主要提供了数值计算功能,下表为提供的具体值,当作直接量使用
属性 | 意义 |
Math.E | 自然对数的底数,即常量e的值 |
Math.PI | π的值 |
Math.LN2 | 2的自然对数 |
Math.LN10 | 10的自然对数 |
Math.LOG2E | 以2为底的e的对数 |
Math.LOG10E | 以10为底的e的对数 |
Math.SQRT1_2 | 0.5的平方根 |
Math.SQRT2 | 2的平方根 |
Math提供的方法,返回的类型是number
Math.abs(x),将数值转换成绝对值
Math.round(x),将数值四舍五入
Math.ceil(x),将数值向上取整,向上取整:有小数位,就进1,例如1.1返回2,1.01也是范围2
Math.floorZ(x),将数值向下取整,向下取整:有小数位,进去掉,例如1.1返回1,1.9返回1
Math.max([value1[,value2[,value3]]]),返回一组数中的最大值,不能是数组,例如:
Math.max(1,2) //返回2
Math.max(-1,-2,-3) //返回-1
Math.min([value1[,value2[,value3]]]),返回一组数中的最小值,不能是数组,例如:
Math.min(1,2) //返回2
Math.min(-1,-2,-3) //返回-1
Math.random(),返回一个随机数,范围是[0,1),包括0,但是不包括1
案例,求任意两数之间的随机数:
function randomNum(min,max) {
var num=max-min+1;
return Math.floor(Math.random() * (num) + min)
}
console.log(randomNum(0,19))