数值的表示
二进制表示法新写法:前缀0b或0B
console.log(0b11 === 3); // true console.log(0B11 === 3); // true
八进制表示法新写法:前缀0o 或 0O
console.log(0o11 === 9); // true console.log(0O11 === 9); // true
常量
Number.EPSILON,它的值接近于2的-52次方
测试数值是否在误差范围内
0.1 + 0.2 === 0.3; // false // 在误差范围内即视为相等 console.log(Math.abs(0.1 - 0.3 + 0.2) < Number.EPSILON); // true
最大最小安全整数
安全整数
安全整数表示在JavaScript中能够精确表示的整数,安全整数的范围在2的-53次方到2的53次方之间(不包括两个端点),超过这个范围的整数无法精确表示。
最大安全整数:安全整数范围的上限,即2的53次方减1.
最小安全整数:安全整数范围的下限,即2的53次方减1的负数.
方法
Number对象新方法:用于检查一个数值是否为有限的(finite),即不是Infinity
Number.isFinite()
Number.isFinite 没有隐式的 Number() 类型转换,所有非数值都返回 false。
在全局的 isNaN() 中,以下皆返回 true,因为在判断前会将非数值向数值转换
而 Number.isNaN() 不存在隐式的 Number() 类型转换,非 NaN 全部返回 false
Number.isNaN(“NaN”); // false
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN(“true”); // false
从全局移植到Number对象的方法
逐步减少全局方法,用于全局变量的模块化。
Number.parseInt()
用于将给定字符串转化为指定进制的整数。
与全局的parseInt()函数是同一个函数。
Number.parseInt === parseInt()
//true
Number.parseFloat()
用于将给定字符串转化为浮点数。
如果无法被解析成浮点数,则返回NaN。
与全局的 parseFloat() 方法是同一个方法。
Number.isInteger()
用于判断给定的参数是否为整数。
注意: JavaScript 内部,整数和浮点数采用的是同样的存储方法,因此1与1.0被视为相同的值。
Number.isSafeInteger()
用于判断数值**(整数)**是否在安全范围内。
Math对象的扩展
ES6在Math对象上新增了17个数学相关的静态方法,这些方法只能在Math中调用。
普通计算
Math.cbrt()
用于计算一个数的立方根。会对非数值进行转换。非数值且无法转换为数值时返回NaN
Math.imul()
两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数。
大多数情况下,结果与 a * b 相同 。用于正确返回大数乘法结果中的低位数值。
Math.hypot()
用于计算所有参数的平方和的平方根。
1)非数值会先被转换为数值后进行计算。2)空值会被转换为 0。3)参数为 Infinity 或 -Infinity 返回 Infinity。4)参数中存在无法转换为数值的参数时返回 NaN
Math.hypot([]); // 0 Math.hypot({}); // NaN
Math.clz32()
用于返回数字的32 位无符号整数形式的前导0的个数。
当参数为小数时,只考虑整数部分。对于空值或非数值,会转化为数值再进行计算。
数字处理
Math.trunc()
用于返回数字的整数部分。
整数部分为 0 时也会判断符号。Math.trunc 会将非数值转为数值再进行处理。空值或无法转化为数值时时返回 NaN。
Math.fround()
用于获取数字的32位单精度浮点数形式。
判断
Math.sign()
判断数字的符号(正、负、0)。
参数为 0 时,不同符号的返回不同。判断前会对非数值进行转换。参数为非数值(无法转换为数值)时返回 NaN。
对数方法
Math.expm1()
用于计算 e 的 x 次方减 1 的结果,即 Math.exp(x) - 1 。
判断前会对非数值进行转换。参数为非数值(无法转换为数值)时返回 NaN。
Math.log1p(x)
用于计算1 + x 的自然对数,即 Math.log(1 + x) 。
参数小于 -1 时返回 NaN。
Math.log10(x)
用于计算以 10 为底的 x 的对数。
Math.log2(x)
用于计算 2 为底的 x 的对数。
双曲函数方法
- Math.sinh(x): 用于计算双曲正弦。
- Math.cosh(x): 用于计算双曲余弦。
- Math.tanh(x): 用于计算双曲正切。
- Math.asinh(x): 用于计算反双曲正弦。
- Math.acosh(x): 用于计算反双曲余弦。
- Math.atanh(x): 用于计算反双曲正切。
指数运算符 **
1 ** 2; // 1 // 右结合,从右至左计算 2 ** 2 ** 3; // 256 // **= let exam = 2; exam **= 2; // 4