一、数值的进制
ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示
但是浏览器显示的还是十进制。ox是十六进制
// 二进制
let num2 = 0b111;
console.log(num2);
// 八进制
let num8 = 0o111;
console.log(num8);
console.log(0o111 === 0111);//也可以只写一个0 表示8进制
二、ES6中的新增方法
1. Number.isFinite()用来检查一个数值是否为有限的(finite),如果参数不是数字的话,全部返回false NaN也返回false
Number.isFinite(15); // true
Number.isFinite(15 / 0); // false infinity
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false
Number.isFinite('foo'); // false
Number.isFinite('15'); // false 不会讲其他类型的数据转换为数值
Number.isFinite(true); // false
2. Number.isNaN()用来检查一个值是否为NaN,如果参数不是数字的话,全部返回false,window.NaN() 会先将其他类型数据转成数字然后再判断
Number.isNaN(NaN) // true
Number.isNaN(15) // false infinity(无限)
Number.isNaN(15 / 0) // false
Number.isNaN('15') // false
Number.isNaN(true) // false
Number.isNaN(9 / NaN) // true
Number.isNaN('true' / 0) // true
Number.isNaN('true' / 'true') // true
3.Number.parseInt(), Number.parseFloat() 与window中的用法相同(这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。)
// ES5的写法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45
// ES6的写法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45
4.Number.isInteger() 用来判断一个数值是否为整数,如果参数不是数值,Number.isInteger返回false。
Number.isInteger(25) // true
Number.isInteger(25.0) // true
// avaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值。
Number.isInteger(25.1) // false
5.Number.isSafeInteger()则是用来判断一个整数是否落在这个范围之内。avaScript 能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。2^53到2^53之间(不含两个端点)这个区间的数称之为安全数
Number.isSafeInteger(3) // true
Number.isSafeInteger(1.2) // false
Number.isSafeInteger(9007199254740990) // true
Number.isSafeInteger(9007199254740992) // false