天天看点

ES6——数值扩展

数值扩展

一、新的进制表示法

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