Number
当运算符为减(-)、乘(*)、除(/)、取模(%)、小于(<)和大于(>),参与运算的分别为数字和字符串时,字符串自动转换为数字参与运算,并返回结果。字符串做自增和自减运算的时候,也会隐式尝试转换为数字。
Number.NaN
表示“非数字”(Not-A-Number)
Number.isFinite()
方法用来检测传入的参数是否是一个有穷数(finite number)。全局的isFinite()
函数相比,不会对参数进行强制转换
1
2
3
4
5
6Number.isFinite(Infinity); // false
Number.isFinite(NaN); // false
Number.isFinite(-Infinity); // false
Number.isFinite(0); // true
Number.isFinite(2e64); // true
Number.isFinite("121"); // false, 全局函数 isFinite('0') 会返回 trueNumber.isInteger()
方法用来判断给定的参数是否为整数。没有隐式转换
1
2
3
4
5
6
7
8
9Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // falseNumber.isNaN()
方法确定传递的值是否为NaN
。和全局函数isNaN()
相比,该方法不会强制将参数转换成数字,只有在参数是真正的数字类型,且值为 NaN 的时候才会返回 true。1
2
3
4
5
6
7
8Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true
// 下面的都返回 false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN("37");numObj.toFixed(digits)
方法使用定点表示法来格式化一个数,digits
表示小数点后的数字个数(介于0到20之间),默认为0
该方法返回一个数值的字符串表现形式,不使用指数计数法,采用四舍五入
去除多余的位数1
2
3
4
5
6
7
8(1.23e+20).toFixed(2); // 返回 "123000000000000000000.00"
(1.23e-10).toFixed(2); // 返回 "0.00"
12345.6789.toFixed(); // 返回 "12346":进行四舍五入,不包括小数部分
12345.6789.toFixed(1); // 返回 "12345.7":进行四舍五入
2.34.toFixed(1); // 返回 "2.3"
2.34.toFixed(6); // 返回 "2.340000", 位数不够用0填充
-2.34.toFixed(1); // 返回 -2.3 (由于操作符优先级,负数不会返回字符串)
(-2.34).toFixed(1); // 返回 "-2.3" (若用括号提高优先级,则返回字符串)numObj.toPrecision(precision)
以定点表示法或指数表示法表示的一个数值对象的字符串表示,四舍五入到 precision 参数指定的显示数字位数。1
2
3
4
5
6
7
8var numObj = 5.123456;
console.log("numObj.toPrecision() is " + numObj.toPrecision()); //输出 5.123456
console.log("numObj.toPrecision(5) is " + numObj.toPrecision(5)); //输出 5.1235
console.log("numObj.toPrecision(2) is " + numObj.toPrecision(2)); //输出 5.1
console.log("numObj.toPrecision(1) is " + numObj.toPrecision(1)); //输出 5
// 注意:在某些情况下会以指数表示法返回
console.log((1234.5).toPrecision(2)); // "1.2e+3"numObj.toExponential(fractionDigits)
方法以指数表示法返回该数值字符串表示形式。fractionDigits
可选。一个整数,用来指定小数点后有几位数字。默认情况下用尽可能多的位数来显示数字。1
2
3
4
5
6var numObj = 77.1234;
alert("numObj.toExponential() is " + numObj.toExponential()); //输出 7.71234e+1
alert("numObj.toExponential(4) is " + numObj.toExponential(4)); //输出 7.7123e+1
alert("numObj.toExponential(2) is " + numObj.toExponential(2)); //输出 7.71e+1
alert("77.1234.toExponential() is " + 77.1234.toExponential()); //输出 7.71234e+1
alert("77 .toExponential() is " + 77 .toExponential()); //输出 7.7e+1
Math
Math.PI
表示一个圆的周长与直径的比例,约为 3.14159:Math.max
和Math.min
, 如果没有参数,则结果为-Infinity
。如果有任一参数不能被转换为数值,则结果为 NaN。1
2
3var arr = [1, 2, 3];
var max = Math.max(...arr);
var min = Math.min(...arr);小数部分的操作,下面的操作都
会对参数进行强制转换
Math.floor()
返回一个小于等于一个给定数字的最大整数,简称向下取整
Math.ceil()
返回一个大于等于一个给定数字的最大整数,简称向上取整
Math.round()
返回一个四舍五入后的整数
Math.trunc()
返回删除掉数字的小数部分和小数点后的数,不管参数是正数还是负数。