JavaScript提供了3个函数可将非数值转换为数值。
定义:对应与数值的应用类型;创建一个Number对象的构造函数。
常用方法
toString( ),返回数值对象的字符串表示。
如:num.toString(); num.toString(2);
toLocaleString( ),返回数值对象的字符串本地表示。
如:num=new Number(12356); num.toLocaleString( );
valueOf( ),返回数值对象的原始数值。
如:num.valueOf( );
toFixed(n),返回包含指定小数位数的数值字符串。
其中,n表示小数位数。
如:num.toFixed(2); num=new Number(10.005); num.toFixed(2);
toExponential(n),返回科学记数法表示的数值字符串。
其中,n表示结果中的小数的位数。
如:num=123;num.toExponential(1); num.toExponential(3);
toPrecision(n),返回数值最恰当的形式。
其中,n表示结果中数字的总位数(不包含指数)。
如:num=99;num.toPrecision(1); num.toPrecision(3);
本质上,它会根据数值和精度来确定调用toFixed( )还是toExponential( )。为了正确的小数位精度表示数值,以上3个方法都会四舍五入。
Number.isFinite( )
用于检查一个数值是否有限的(finite)。如果参数类型不是数值,一律返回false。
如:Number.isFinite(15);Number.isFinite(NaN);Number.isFinite("foo");
Number.isNaN( )
用于检查一个是否为NaN。如果参数类型不是NaN,一律返回false。
如:Number.isNaN(false);Number.isNaN(null);Number.isNaN("15");
Number.parseInt( )与Number.parseFloat( )
ES6将全局方法parseInt( )和parseFloat( )移植到Number对象中,行为完全保持不变。
Number.isInteger( )
用于判断一个数值是否为整数。如果参数不是数值,返回false。
如:Number.isInteger(“15”) ;Number.isInteger(12);Number.isInteger(12.0);Number.isInteger(12.1)
Number.EPSILON
常量,表示1与大于1的最小浮点数之间的差。
意义
JavaScript中采用64位存储浮点数,大于1的最小浮点数相当于二进制的1.00…001,其间有连续51个零。
这个值减去 1 之后,就等于 2 的 -52 次方。
实际上用该值来表示JavaScript的最小精度,从而在浮点数运算时用于确定误差范围。
min( )与max( )
可以接收任意多个参数。
let max, min;
max = Math.max(3, 33, 13, 43);
console.log(max);//43
min = Math.min(3, 33, 13, 43);
console.log(min);//3
let nums = [1, 2, 3, 4, 5, 6];
max = Math.max(...nums);
console.log(max);//6
舍入方法
把小数值舍入为整数。
Math.ceil( ),始终向上舍入为最接近的整数。
Math.floor( ),始终向下舍入最接近的整数。
Math.round( ),执行四舍五入的规则,返回最近的整数。
Math.fround( ),放回数值最接近的单精度(32位)浮点数表示。
random( ) ,返回一个0~1之间的随机数,其中包含0但不包含1。
Math.trunc( )
用于去除一个数的小数部分,返回整数部分。
对于非数值,其内部会先使用Number( )转换为数值再操作。
对于空值和无法截取整数的值,返回NaN。
Math.sign( )
用于判断一个数是正数、负数还是零。
对于非数值,先将其转换为数值在判断。
返回值
正数:+1;负数:-1;
0:0;-0:-0;
其他值:NaN;
Math.cbrt( )
用于计算一个数的立方根。
对于非数值,其内部会先使用Number( )转换为数值再操作。
对于空值和无法截取整数的值,返回NaN。
Math.hypot( )
用于计算所有参数的平方和的平方根。
如:Math.hypot(3, 4)=>5.
ES10新增了一种数据类型BigInt
BigInt 是一种内置对象,它提供了一种方法来表示大于 253 - 1 的整数。这原本是 Javascript中可以用 Number 表示的最大数字。BigInt 可以表示任意大的整数。
描述:可以用在一个整数字面量后面加 n 的方式定义一个 BigInt ,如:10n,或者调用函数BigInt()。
它在某些方面类似于 Number ,但是也有几个关键的不同点:不能用于 Math 对象中的方法;不能和任何 Number 实例混合运算,两者必须转换成同一种类型。在两种类型来回转换时要小心,因为 BigInt 变量在转换成 Number 变量时可能会丢失精度。