前端学习(四十四) JavaScript-数值(javaScript)

数值

主要分为:整型(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))

猜你喜欢

转载自blog.csdn.net/zy21131437/article/details/81117425