ES6 基础总结 (数值扩展)

本文介绍了ES6中关于数值处理的新特性,包括二进制和八进制表示法、Number对象的扩展方法如isFinite、isNaN、parseInt、parseFloat、isInteger及EPSILON常量,安全整数的定义及判断方法,以及Math对象新增的trunc、sign、cbrt、hypot等方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ES6 针对数值的扩展

二进制和八进制表示法

  • 从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示。
  • 可以直接使用 Number() 方法将二进制和八进制转换为十进制。

Number.isFinite(), Number.isNaN()

  • ES6 新增,注意,如果参数类型不是数值,Number.isFinite一律返回false。
  • 他们与传统的方法区别在于不进行类型转换,只对 Number 数据类型有效。
  • Number.isNaN() 除了 NaN 之外,均会返回 false。

Number.parseInt(),Number.parseFloat()

  • ES6 只是将这两个方法绑定在 Number 上,为了逐步减少全局变量,使得其离模块化更近一步。

Number.isInteger()

  • 用来判断一个数是否为整数。但是遗憾的是精度不高,所以不建议使用这个方法判断一个数是否为整数。(=.=)

Number.EPSILON

  • ES6 新增的极小的常量一个,当误差值小于该数时,可视为没有误差。
  • 该数为 JavaScript 可以表示的最小的数。

安全整数和 Number.isSafeInteger()

  • JavaScript 能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。
  • ES6 引入了 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 这两个常量,用来表示这个范围的上下限。

Math对象的扩展

ES6 新增了 17 个 Math 对象的特有方法,本次只总结了笔者认为常用的几个。

  1. Math.trunc()
    用于数字取整,去除其小数部分,返回整数部分。
    会将非数字类型的值进行类型转换,然后取整。
  2. Math.sign()
    用于判断一个数是正数、负数、或是0。
    同样会进行类型转换,返回 +1、-1、+0、-0、NaN。
  3. Math.cbrt()
    用于计算一个数的立方根。
  4. Math.hypot()
    Math.hypot方法返回所有参数的平方和的平方根。
    其中只要有一个参数不是数字,就会返回 NaN。
ES6 引入了一些数值扩展,其中包括了新的数值类型(如二进制和八进制)、新的数学方法和常量。 1. 二进制和八进制 在 ES6 中,我们可以使用 `0b` 或 `0B` 前缀来表示二进制数,使用 `0o` 或 `0O` 前缀来表示八进制数。例如: ```javascript let binary = 0b1010; // 二进制的 10 let octal = 0o777; // 八进制的 511 ``` 2. Number.isFinite() `Number.isFinite()` 方法用于检查一个数值是否为有限数。与全局的 `isFinite()` 函数不同的是,`Number.isFinite()` 不会将非数值转换为数值。例如: ```javascript Number.isFinite(Infinity); // false Number.isFinite(-Infinity); // false Number.isFinite(NaN); // false Number.isFinite(123); // true ``` 3. Number.isNaN() `Number.isNaN()` 方法用于检查一个数值是否为 NaN。与全局的 `isNaN()` 函数不同的是,`Number.isNaN()` 只有在参数是数值且等于 NaN 时才返回 true。例如: ```javascript Number.isNaN(NaN); // true Number.isNaN('hello'); // false Number.isNaN(123); // false ``` 4. Number.parseInt() `Number.parseInt()` 是 `parseInt()` 的一个新的方法,它将字符串转换为整数,并且只接受数字作为字符串的参数。例如: ```javascript Number.parseInt('123'); // 123 Number.parseInt('123.45'); // 123 Number.parseInt('hello'); // NaN ``` 5. Number.parseFloat() `Number.parseFloat()` 是 `parseFloat()` 的一个新的方法,它将字符串转换为浮点数,并且只接受数字作为字符串的参数。例如: ```javascript Number.parseFloat('3.14'); // 3.14 Number.parseFloat('3.14hello'); // 3.14 Number.parseFloat('hello'); // NaN ``` 6. Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER `Number.MAX_SAFE_INTEGER` 和 `Number.MIN_SAFE_INTEGER` 属性分别表示 JavaScript 中最大的安全整数和最小的安全整数。例如: ```javascript Number.MAX_SAFE_INTEGER; // 9007199254740991 Number.MIN_SAFE_INTEGER; // -9007199254740991 ``` 7. Number.isSafeInteger() `Number.isSafeInteger()` 方法用于检查一个数值是否为安全整数。安全整数是指符合以下两个条件的整数: - 在 JavaScript 中能够精确表示。 - 绝对值不大于 `Number.MAX_SAFE_INTEGER`。 例如: ```javascript Number.isSafeInteger(123); // true Number.isSafeInteger(9007199254740992); // false,超出了安全整数范围 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值