5.数值的扩展
2019-01-25 本文已影响0人
毛贵军
各进制表示法
进制 | 表示方法 | 例子 |
---|---|---|
二进制 | 0b(或 0B) | 0b111110111 === 503 |
八进制 | 0o(或 0O) | 0o767 === 503 |
Number 的 api
api | 作用 |
---|---|
Number.isFinite() | 用来检查一个数值是否为有限的(finite),即不是 Infinity |
Number.isNaN() | 用来检查一个值是否为 NaN。 |
Number.isInteger() | 用来判断一个数值是否为整数。 |
Number.parseInt() | 同 window.parseInt() |
Number.parseFloat() | 同 window.parseFloat() |
Number.isSafeInteger() | 用来判断一个整数是否落在(-253,253)范围之内 |
Math 扩展 API
api | 使用方法 | 作用 | 返回值 |
---|---|---|---|
Math.trunc() | Math.trunc(2.9) // 2 | 去除一个数的小数部分 | 返回整数部分 |
Math.sign() | Math.sing(-12) // -1 | 判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。 | 参数为正数,返回+1;参数为负数,返回-1;参数为 0,返回 0;参数为-0,返回-0;其他值,返回 NaN。 |
Math.cbrt() | Math.cbrt(8) // 2 | 计算一个数的立方根。 | 计算结果 |
Math.clz32() | Math.clz32(1) | 计算一个数的 32 位二进制形式的前导 0 的个数,将一个数转换成二进制,然后补全为 32 位,返回在前面补的 0 的个数 | 返回 0 的个数 |
Math.hypot() | Math.hypot() | 计算所有参数的平方和的平方根 | 返回计算结果 |
例子
var arr = [3, 4];
Math.hypot(...arr); // 5
对数方法
略
双曲函数方法
略
指数运算符
ES2016 新增了一个指数运算符(**)和 (**=)
这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算的。
// 相当于 2 ** (3 ** 2)
2 ** (3 ** 2);
// 512
let b = 4;
b **= 3;
// 等同于 b = b * b * b;