ES6 数值扩展

数值分隔符
允许给较长的数值添加分隔符,分割不没有间隔位数限制,不影响原值,不能在特殊符号前后。

let num = 1_00_000_000;

检测数值是否有限
有限:true
无限:false

Numbet.isFinite(10)  // true
Numbet.isFinite(NaN)  // false

检测是否为NaN
是:true
否:false

Number.isNaN(NaN) // true
Number.isNaN(10)  // false

Number.parseInt()、Number.parseFloat()
将es5的全局方法parseInt()、parseFloat()改为Number.xxx,目的是减少全局方法,使语言模块化。

parseInt('12.55');  // 12
Number.parseInt('12.55');   // 12

parseFloat('12.55');  // 12.55
Number.parseFloat('12.55');   // 12.55

isInteger()判断是否为整数
注意:如果数值位数太长,可能会误判,IEEE754标准,53个二进制位后的数值会被丢弃

Number.isInteger(15)  // true
Number.isInteger(1.5) // false
Number.isInteger(false) // false
Number.isInteger(3.0000000000000002) // true

Math.sign()判断是正、负、零,非数值会先转换数值
Math.sign('5') // 1 整数
Math.sign(5) // 1
Math.sign(-5) // -1 负数
Math.sign(0)  // 0
Math.sign(-0) // -0
Math.sign(true) // 1
Math.sign(false)  // -1
// 其它 NaN

Math.hypot()方法返回所有参数的平方和和平方根
Math.hypot(3,4);  // 5

BigInt数据类型-大整数
大整数语法(后缀n):数据n

BigInt大整数可以保持数值精度

let a = 2172141653n  // 大整数
let b = 15346349309n  // 大整数
console.log(a*b);  // 33334444555566667777n  // 可以保持精度

普通数值与大整数不相等

15n === 15 // false

BigInt继承Object对象的两个实例方法

BigInt.prototype.toString()
BigInt.prototype.valueOf()
BigInt继承了Number对象的一个实例方法

BigInt.prototype.toLocaleString()
提供了三个静态方法

BigInt.asUintN(width, BigInt)
BigInt.asIntN(width, BigInt)
BigInt.parseInt(string[, radix])
BigInt转换规则
Boolean、Number、String三个方法。
转换后后缀n会消失

Boolean(0n)  // false
Number(2n) // 2
String(2n)  // 2
 

你可能感兴趣的:(es6,javascript,开发语言)