ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。
ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示。
ES6 在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法。
ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。

数值的拓展

进制简化 0b 0o

1
2
3
4
{
console.log('二进制:', 0b111110111) // 503
console.log('八进制:', 0o767) // 503
}

判断数值 API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
// 最大整数
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
// 最小整数
console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991
// 判断是检测参数是否为无穷大
console.log(Number.isFinite(53)) // true
console.log(Number.isFinite(NaN)) // false
// 判断是否为有效区间
console.log(Number.isSafeInteger(10)) // true
console.log(Number.isSafeInteger(90071992547409910)) // false
console.log(Number.isSafeInteger('8777')) // false
// 判断是否为非数值
console.log(Number.isNaN(NaN)) // true
console.log(Number.isNaN(0)) // false
// 判断是否为整数
console.log(Number.isInteger(25)) // true
console.log(Number.isInteger(25.0)) // true
console.log(Number.isInteger(25.1)) // false
console.log(Number.isInteger('25')) // false
// 返回小数的整数部分 向下取整
console.log(Math.trunc(4.1)) // 4
console.log(Math.trunc(4.9)) // 4
// 判断一个数是正数 0 负数
console.log(Math.sign(5)) // 1
console.log(Math.sign('50')) // 1
console.log(Math.sign('foo')) // NaN
console.log(Math.sign(0)) // 0
console.log(Math.sign(-5)) // -1
// 立方根函数
console.log(Math.cbrt(8)) // 2
console.log(Math.cbrt(-1)) // -1
}