6.1 二进制和八进制表示法
进制 | 前缀 | 支持情况 |
---|---|---|
二进制 | 0b(0B) | es6+ |
八进制 | 0o(0O) | es6+ |
八进制 | 0 | es5(非严格模式) |
十六进制 | 0x(0X) | es5+ |
1 | // 使用 Number 将二进制和八进制字符串转为 10 进制 |
6.2 Number.isFinite(), Number.isNaN()
6.2.1 基础
方法 | 说明 | 参数为非数字时 | 兼容性 |
---|---|---|---|
isFinate | 检查是否非无穷 | 通过 Number 转为数字,再判断 | es3+ |
isNaN | 检查是否非数字 | 通过 Number 转为数字,再判断 | es3+ |
Number.isFinate | 检查是否非无穷 | 返回 false | es6+ |
Number.isNaN | 检查是否非数字 | 返回 false | es7+ |
1 | Number.isFinite(15); // true |
6.2.2 es5环境下的polyfill
借助传统的 isNaN
和isFinate
来实现自定义的Number.isNaN
和Number.isFinate
1 | (function (global) { |
6.3 Number.parseInt(), Number.parseFloat()
ES6将parseInt()
和parseFloat()
移植到 Number
对象上面。
1 | // ES5的写法 |
这样处理的目的是逐步减少全局性方法,使得语言逐步模块化。
6.4 Number.isInteger()
功能:用来判断一个值是否为整数
注意:整数和浮点数存储方式是一样的,3和3.0都会被认为是整数
6.4.1 基础
1 | Number.isInteger(25) // true |
6.4.2 es5环境下的 polyfill
1 | (function (global) { |
6.5 Number.EPSILON
说明:一个极小的常量2.220446049250313e-16
用途:可以在浮点数计算中作为误差范围使用
1 | function withinErrorMargin (left, right) { |
6.6 安全整数和 Number.isSafeInteger()
常量(ES6提供) | 说明 |
---|---|
Number.MAX_SAFE_INTEGER |
JS支持的整数上限(9007199254740991) |
Number.MIN_SAFE_INTEGER |
JS支持的整数下限(-9007199254740991) |
6.6.1 Number.isSafeInteger()
功能:判断一个整数是否落在这个JS
能够支持的范围之内
技巧:验证运算结果是否落在安全整数的范围內,不要只验证运算结果,而要同时验证参与运算的每个值。
1 | Number.isSafeInteger('a') // false |
1 | /** |
6.6.2 es5 环境下的 polyfill
1 | /** |
6.7 Math 对象的扩展
es6在 Math 对象上新增了17个与数学相关的静态方法
6.7.1 常用(7个)
静态方法 | 说明 |
---|---|
Math.truc | 去除一个数的小数部分 |
Math.sign | 判断一个数到底是正数、负数、还是零 |
Math.cbrt | 计算一个数的立方根 |
Math.clz32 | 返回一个数的32位无符号整数形式有多少个前导0 |
Math.imul | 返回两个数以32位带符号整数形式相乘的结果 |
Math.fround | 返回一个数的单精度浮点数形式 |
Math.hypot | 返回所有参数的平方和的平方根 |
6.7.2 对数方法(4个)
静态方法 | 说明 |
---|---|
Math.expm1 | 返回e^x - 1. 即 Math.exp(x) - 1 |
Math.log1p | 返回 1 + x 的自然对数,即 Math.log(1 + x) |
Math.log10 | 返回 以10为底的 x 的对数 |
Math.log2 | 返回 以2为底的 x 的对数 |
6.7.3 三角函数方法(6个)
静态方法 | 说明 |
---|---|
Math.sinh(x)返回 x 的双曲正弦
Math.cosh(x)返回 x 的双曲余弦
Math.tanh(x)返回 x 的双曲正切
Math.asinh(x)返回 x 的反双曲正弦
Math.aconsh(x)返回 x 的反双曲余弦
Math.atanh(x)返回 x 的反双曲正切
6.8 指数运算符
运算符 | 说明 |
---|---|
** | 指数运算符 |
**= | 指数运算和等号结合 |
1 | 2 ** 2// 4 |