📜  ES6-数字(1)

📅  最后修改于: 2023-12-03 15:30:38.445000             🧑  作者: Mango

ES6-数字

在 ES6 中,数字类型的功能得到了增强,包括以下内容:

  • 二进制和八进制字面量
  • Number 方法的新特性
二进制和八进制字面量

ES6 支持二进制和八进制的字面量,使用前缀 0b0o 分别表示二进制和八进制数。

let binary = 0b1010;   // 二进制数 1010
let octal = 0o644;     // 八进制数 644

console.log(binary);   // 10
console.log(octal);    // 420
Number 方法的新特性

ES6 对 Number 方法进行了增强,包括以下 5 个新方法:

Number.isFinite()

该方法用于检查某个数值是否为有限的(finite),即不是 Infinity。

Number.isFinite(Infinity);  // false
Number.isFinite(-Infinity); // false
Number.isFinite(NaN);       // false

Number.isFinite(0);         // true
Number.isFinite(1);         // true
Number.isFinite(1.23);      // true
Number.isInteger()

该方法用于判断某个数值是否为整数,参数必须为数值类型。

Number.isInteger(0);         // true
Number.isInteger(1);         // true
Number.isInteger(1.23);      // false
Number.isInteger('1');       // false
Number.isNaN()

该方法用于检查某个数值是否为 NaN。

Number.isNaN(NaN);          // true
Number.isNaN(0);            // false
Number.isNaN('1');          // false
Number.isSafeInteger()

该方法用于判断某个数值是否为安全整数,即在 [-2^53, 2^53] 范围内的整数。参数必须为数值类型。

Number.isSafeInteger(Math.pow(2, 53) - 1);   // true
Number.isSafeInteger(Math.pow(2, 53));       // false
Number.isSafeInteger('1');                   // false
Number.parseFloat() 和 Number.parseInt()

在 ES6 中,将全局对象上的 parseFloat 和 parseInt 方法转移到了 Number 对象上。

Number.parseFloat('3.14');     // 3.14
Number.parseFloat('3.14text'); // 3.14

Number.parseInt('42', 10);     // 42
Number.parseInt('10', 8);      // 8