新的进制表示法
- 以前八进制可以直接以
0
开头(octonary),为了将它与十进制区分开,ES6规定八进制必须以0O
或者0o
开头。 - 二进制则以
0b
或者0B
开头(binary)。
1 | console.log(0o16);//14 |
新的方法
parseInt()与parseFloat()转换为整数与小数
- ES6之前,parseInt()与parseFloat()都是挂在window对象上的,window可省略。ES6则将parseInt()与parseFloat()都放在了Number对象上。
- 但无论对象如何改变,parseInt()与parseFloat()的用途都没改变,依旧是可以将字符串或者数字转换为相应的整数或小数。
1
2
3
4console.log(window.parseInt("1.23"));//1
console.log(parseFloat("1.23"));//1.23
console.log(Number.parseInt("1.23"));//1
console.log(Number.parseFloat("1.23"));//1.23
isNaN()判断是否“非数值”
- isNaN()判断是否“非数值”,遇到字符串会看能不能将其转换为数值再进行判断.
- 注意:只有遇到Nan他才会返回true,其他不管是什么类型,包括true与false都被算作是数值,返回false!
1
2
3
4
5
6console.log(Number.isNaN(NaN));//true
console.log(Number.isNaN(-NaN));//true
console.log(Number.isNaN(1)); //false
console.log(Number.isNaN('1'));//false
console.log(Number.isNaN(true));//false
console.log(Number.isNaN(false));//false
isFinite()判断是否是无限的
1 | console. log(Number. isFinite(Infinity)); //false,Infinity有限的 |
安全数
- 用来判断这个整数是否处于JS内表示的范围之内。
- 即判断这个整数是否在最大值
Number.MAX_SAFE_INTEGER
与最小值Number.MIN_SAFE_INTEGER
之间。1
2console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER-1));//true,比最大值小1肯定是安全数
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER+1));//false
幂运算**
(新的运算符)
- 注意:它是右结合的,也就是说,在没有括号的情况下他是自动从右往左进行运算的。
- 例子分析:
a算出的是2的10次方1024;
b如果是左结合则应该得到1,但是得到的是2,和d得到的值一样,也就是说**
幂运算是右结合的;
想要达到左结合的效果,可以像c一样使用括号。1
2
3
4
5
6
7
8let a = 2 ** 10;
console.log(a);//1024
let b = 2 ** 10 ** 0;
console.log(b);//2
let c = (2 ** 10) ** 0;
console.log(c);//1
let d = 2 ** (10 ** 0);
console.log(d);//2