ES6数值扩展

二进制0B,八进制0O
//十进制 -> 二进制
const a=5   //101
console.log(a.toString(2)); //101

//二进制 ->十进制
const b=101
console.log(parseInt(5.5));  //5
console.log(parseInt(b,2));  //5

//es6 0B二进制
const c= 0B0101
console.log(c); //5
//es6 0O八进制
const d=0O777
console.log(d); //511
Number.isFinite(),Number.isNaN()
// 5/0 Infinity
//Number.isFinite 判断数值是不是有限的
console.log(Number.isFinite(5))   //true
console.log(Number.isFinite(0.5))  //true
console.log(Number.isFinite(Infinity)) //false
console.log(Number.isFinite('hi'))  //false
console.log(Number.isFinite(true))  //false

//'a'/5 NaN not a number
//isNaN(5) => window.isNaN(5)
//Number.isNaN 判断数值是不是NaN
console.log(Number.isNaN(NaN))   //true
console.log(Number.isNaN(15))   //false
Number.parseInt(),Number.parseFloat()
//减少挂载在window上 使代码模块化
console.log(window.parseInt(5.5))   //5
console.log(window.parseFloat(5.5))  //5.5
console.log(Number.parseInt(5.5))   //5
console.log(Number.parseFloat(5.5))  //5.5
Number.isInteger()
//Number.isInteger 判断数值是不是整数
console.log(Number.isInteger(5))   //true
console.log(Number.isInteger(5.5))   //false
面试题 0.1+0.2===0.3?
//0.1+0.2不等于0.3
//精度缺失问题 存储的是近似值
//IEEE 754 双精度标准 存储数字二进制
console.log(0.1+0.2); //0.30000000000000004
console.log(0.1+0.2 ===0.3); //false

//存储35->00100011 转八进制
//存储0.375->0.011 转二进制
//0.1-> 0.000110011... 存储空间不够
console.log(0.1000000000000001);  //0.1000000000000001
console.log(0.10000000000000001); //0.1
console.log(0.10000000000000001===0.1); //true
Math新增方法
//整数的最大值是2的53次方 最小值是-2的53次方
const max=Math.pow(2,53)
console.log(max); //9007199254740992
console.log(max+1); //9007199254740992

//MAX_SAFE_INTEGER 最大值
console.log(Number.MAX_SAFE_INTEGER);

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

//Number.isSafeInteger 判断是不是一个安全的整数
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER)); //true
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER+1)); //false

//Math.trunc 去除一个数的小数部分,返回整数部分
console.log(Math.trunc(5.5)); //5
console.log(Math.trunc(-5.5)); //-5
console.log(Math.trunc(true)); //先转换成Number型 返回1
console.log(Math.trunc(false)); //0
console.log(Math.trunc(NaN)); //NaN
console.log(Math.trunc(undefined)); //NaN
console.log(Number.parseInt(5.5)); //5
console.log(Number.parseInt(-5.5)); //-5
console.log(Number.parseInt(true)); //NaN

//Math.sign 判断是正数1负数-1还是0
console.log(Math.sign(5));  //1
console.log(Math.sign(-5));  //-1
console.log(Math.sign(0));   //0
console.log(Math.sign(NaN));  //NaN
console.log(Math.sign(true));  //1
console.log(Math.sign(false));  //0

//Math.cbrt 求数值的立方根
console.log(Math.cbrt(8)); //2
console.log(Math.cbrt('hi')); //NaN
console.log(Math.cbrt(true)); //1
console.log(Math.cbrt(false)); //0
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。 如...
    勿念及时雨阅读 204评论 0 1
  • 1.二进制和八进制的数值的表示方法 分别用0b(0B)和0o(0O)表示二进制和八进制; 如果要将二进制或者八进制...
    _花阅读 259评论 0 1
  • 1.二进制和八进制表示法 ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示...
    Kevin丶CK阅读 152评论 0 2
  • 二进制0b 和八进制0o表示法 Number.isFinite(), Number.isNaN() 有限,非数...
    sponing阅读 304评论 0 0
  • 1. 数字进制新增 1.1. 定义二进制字面量 二进制:(b:Binary) 如果后面写的不符合二进制就报错 以前...
    时光如剑阅读 528评论 0 3

友情链接更多精彩内容