数值新增特性
1 二进制和八进制的表示方式
//二进制表示 ES6表示方式
var n1 = 0b1010010;
// 八进制表示 ES6之前的表示方式 严格模式不可用
var n2 = 017;
// 八进制表示, ES6表示方式
var n3 = 0o17;
2 Number 构造函数本身新增的方法和属性
属性名 | 描述 |
---|---|
Number.MAX_SAFE_INTEGER | 最大的安全整数 |
Number.MIN_SAFE_INTEGER | 最小安全整数 |
Number.EPSILON | 它表示相邻两个浮点数的最小差值,是 JavaScript 能够表示的最小精度 |
方法名 | 描述 |
---|---|
Number.isNaN() | 同全局函数 isNaN() |
Number.isFinite() | 同全局函数 isFinite() |
Number.parseInt() | 同全局函数 parseInt() |
Number.parseFloat() | 同全局函数 parseFloat() |
Number.isInteger() | 返回布尔值,用来判断一个数值是否为整数 |
Number.isSafeInteger() | 返回布尔值,是否是安全的整数,整数范围在-2^53到2^53之间视为安全整数(不包含两个端点) |
Number.isInteger(25) // true
Number.isInteger(25.1) // false
Number.isInteger(25.0) // true
// 如果参数不是数值,Number.isInteger返回false。
Number.isInteger() // false
Number.isInteger(null) // false
Number.isInteger('15') // false
Number.isInteger(true) // false
// 这个小数的精度达到了小数点后16个十进制位,转成二进制位超过了53个二进制位,导致最后的那个2被丢弃了。
Number.isInteger(3.0000000000000002) // true
// 如果一个数值的绝对值小于Number.MIN_VALUE(5E-324),即小于 JavaScript 能够分辨的最小值,会被自动转为 0。
Number.isInteger(5E-324) // false
Number.isInteger(5E-325) // true
3 Math 新增的方法
方法名 | 含义 |
---|---|
Math.trunc() | 去除一个数的小数部分,返回整数部分 |
Math.sign() | 判断一个数到底是正数、负数、还是零。 参数为正数,返回+1; 参数为负数,返回-1; 参数为 0,返回0; 其他返回 NaN。 |
Math.cbrt() | 计算一个数的立方根 |
Math.hypot() | 返回所有参数的平方和的平方根 |
Math.trunc(4.1) // 4
Math.trunc(4.9) // 4
Math.trunc(-4.1) // -4
Math.trunc(-4.9) // -4
Math.trunc(-0.1234) // -0
Math.sign(-5) // -1
Math.sign(5) // +1
Math.sign(0) // +0
Math.sign(-0) // -0
Math.sign(NaN) // NaN
Math.hypot(3, 4); // 5
Math.hypot(3, 4, 5); // 7.0710678118654755