数值扩展
一、新的进制表示法
0o|0O代表八进制,octonary
0b|0B代表二进制,binary
二、新的方法与安全数
1、parseInt和parseFloat
功能:将数字以及字符串形式的数字转化为number形式的整数或者浮点数
这两个方法挂载对象从window换到了Number下面,即要通过Number.parseInt(1.23)来调用。
通过Number()可转为10进制;
console.log(window.parseInt('1.23'));
console.log(parseFloat('1.23'));
//ES6
console.log(Number.parseInt(1.23));
console.log(Number.parseFloat(1.23));
2、Number.isNaN()和Number.isFinite
isNaN()判断是否是非数值,
console.log(Number.isNaN(NaN));//true
console.log(Number.isNaN(123));//false
//自定义isNaN:
function isNaN(value){
return value!==value;//利用NaN不等于自身的特性
}
console.log(isNaN(NaN));//true
isFinite判定一个值是否是有限数字,该值必须为Number类型的优先数字。
console.log(Number.isFinite(2 / 4));//true
console.log(Number.isFinite(1234)); //true
console.log(Number.isFinite('1234')); //false
三、安全数
1、Number.isSafeInteger(); 判断整数是否在JS能精确表示的范围内
安全数范围:Number.MAX_SAFE_INTEGER((253)-1)~Number.MIN_SAFE_INTEGER((-253)-1),这两个值表示常量
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER - 1));//true
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1));//false
四、幂运算
用**表示,运算顺序从右向左,功能与Math.pow(数值,幂次)相同
2 ** 10 ** 0 = 2
(2 ** 10) ** 0 = 1
let a = (2 ** 10) ** 0;
console.log(a);//1