【ES6】数值的扩展

  1. ES6提供了二进制和八进制的新写法,分别用前缀0B(0b)和0O(0o)表示。如果要将二进制和八进制转为对应的十进制,要使用 Number() 方法。
  2. ES6 在Number对象上,新提供了 Number.isFinite() 和 Number.isNaN() 两个方法。前者检查一个数是否有限,无限或非数值则返回false;后者检查一个数值是否是NaN,只在是NaN的情况下返回true。
  3. ES6 将全局方法 parseInt() 和 parseFloat() ,移植到Number对象上面,行为完全保持不变。这么做的原因是减少全局性方法,使得语言逐步模块化。
  4. Number.isInteger() 用来判断一个数值是否为整数。JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值。如果参数不是数值,则会返回false。但超过JS精度范围的值可能会被误判。
  5. ES6 在Number对象上面,新增一个极小的常量 Number.EPSILON(Math.pow(2, -52))。Number.EPSILON实际上是 JavaScript 能够表示的最小精度。误差如果小于这个值,就可以认为已经没有意义了,即不存在误差了。
  6. ES6 引入了 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 这两个常量,用来表示-2^53到2^53这个范围的上下限。
  7. 指数运算符(**),需要注意这个运算符是右结合的。
  8. ES2020 引入了一种新的数据类型 BigInt(大整数),来解决这个问题,这是 ECMAScript 的第八种数据类型。BigInt 只用来表示整数,没有位数的限制,任何位数的整数都可以精确表示。为了与 Number 类型区别,BigInt 类型的数据必须添加后缀n。**且BigInt 与普通整数是两种值,它们之间并不相等。**JavaScript 原生提供BigInt对象,可以用作构造函数生成 BigInt 类型的数值。转换规则基本与Number()一致,将其他类型的值转为 BigInt。
posted @ 2020-07-18 15:03  HermionePeng  阅读(111)  评论(0编辑  收藏  举报