引言:数字操作不是ES6新有的。
本学习笔记将会涉及到,二进制、八进制、十六进制的表示;判断数字的类型(整形、浮点型、NaN、最大/最小安全整数),以及类型的转换
开始学习
1.二进制、八进制、十六进制的表示
let a= 0b101010; //以0b开头,不区分大小写
let b = 0o666; //以0o开头,不区分大小写
let c = 0xABC; //以0x开头,不区分大小写
2.判断数字是否为数字 (Number.isFinite(arg))
let a= 11;
let b='not a number';
console.log(Number.isFinite(a)) //true
console.log(Number.isFinite(b)) //false
3.判断数字是否为整数 (Number.isInteger(arg))
let a= 11;
let b=110.1
console.log(Number.isInteger(a)) //true
console.log(Number.isInteger(b)) //false
4.判断数字是否为浮点型
貌似是没有提供关于怎么判断一个数字是否为浮点型的,有些人会以下面这种形式来判断,但是是不行的,因为当输入NaN时,也给你判断为浮点型,所以还是要排除NaN这种情况
let a= 11;
let b=110.1;
console.log(!Number.isInteger(a)) //false
console.log(!Number.isInteger(b)) //true
正确写法: (!Number.isInteger(arg)&&!Number.isNaN(arg))
let a= 11;
let b=110.1;
let c= NaN;
console.log((!Number.isInteger(a)&&!Number.isNaN(a))) //false
console.log((!Number.isInteger(b)&&!Number.isNaN(b))) //true
console.log((!Number.isInteger(c)&&!Number.isNaN(c))) //false
5.判断数字是否为NaN
let a = 11;
let b = NaN;
console.log(Number.isNaN(a));//false
console.log(Number.isNaN(b));//true
6.最大/最小安全整数,以及他们的判断
console.log(Number.MAX_SAFE_INTEGER);//最大安全整数
console.log(Math.pow(2,53)-1); //最大安全整数,(2^53)-1
console.log(Number.MIN_SAFE_INTEGER);//最小安全整数
console.log(-Math.pow(2,53)+1); //最小安全整数 -(2^53)+1
判断:Number.isSafeInteger(number)
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER));//true
console.log(Number.isSafeInteger(Number.MIN_SAFE_INTEGER));//true
console.log(Number.isSafeInteger(123123));//true
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER+1)); //false
console.log(Number.isSafeInteger(Number.MIN_SAFE_INTEGER-1));//false
7.类型转换
整形转浮点型
let a = 11;
let b = 12.12;
console.log(Number.parseFloat(a)); //整形转浮点型
console.log(Number.parseInt(b)); //浮点型转整形
以上便是数字操作的学习笔记