js中Number原型上和新增方法

91 阅读1分钟

toFixed() 小数部分的显示位数并向上取整

var a = 42.59;
console.log(a.toFixed( 0 )); // 43
console.log(a.toFixed( 1 )); // 42.6
console.log(a.toFixed( 2 )); // 42.59

toPrecision() 有效数位的显示位数

范围必须1-100

var a = 42.59;
console.log(a.toPrecision( 1 )); // 4e+1
console.log(a.toPrecision( 2 )); // 43
console.log(a.toPrecision( 3 )); // 42.6

toExponential() 科学计数法

var a = 42.59;
console.log(a.toExponential(0)); // 4e+1
console.log(a.toExponential(1)); // 4.3e+1
console.log(a.toExponential(2)); // 4.26e+1
console.log(a.toExponential(3)); // 4.259e+1

valueOf() 拆封

要得到封装对象中的基本类型值,要用到valueof()

var a = 42
var b = Object(a)           //包装
console.log(typeof a);      //number
console.log(typeof b);      //object
console.log(b.valueOf());   //42     拆封

ES6新增

Number.EPSILON 误差范围值

var a = 0.1 + 0.2;
var b = 0.3;
console.log(a === b);           //false
console.log(Number.EPSILON);   //2.220446049250313e-16

最大/小安全范围

比较操作可以通过字符串来实现

console.log(Number.MAX_SAFE_INTEGER);   //9007199254740991
console.log(Number.MIN_SAFE_INTEGER);   //-9007199254740991

Number.isInteger() 检测一个值是否是整数

console.log(Number.isInteger(0));     //true
console.log(Number.isInteger(41.2));  //false
console.log(Number.isInteger(-1));    //true

Number.isSafeInteger() 检测值是否是安全的整数

var a = Number.isSafeInteger( Math.pow( 2, 53 ) );
console.log(a);   //false