ES6提供了二进制和八进制数值的新写法,分别用前缀0b和0o表示。
0b111110111 === 503 //true
0o767 === 503 //true
八进制用0o前缀表示的方法,将要取代已经在ES5中被逐步淘汰的加前缀0的写法。
ES6在Number对象上,新提供了 Number.isFinite( )和Number.isNaN( )两个方法,分别用于检测是不是数字,是数字就返回true否则返回false。它们与传统的 isFinit( )和 isNaN( )的区别在于,传统方法先调用Number( )将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,对于非数值一律返回 false.
console.log(isFinite(25)); //true
console.log(isFinite("25")); //true
console.log(Number.isFinite(25)); //true
console.log(Number.isFinite( “25")); // false
console.log(isNaN(NaN)); //true
console.log(isNaN("NaN")); //true
console.log(Number.isNaN(NaN)); //true
console.log(Number.isNaN("NaN")); // false
Number.isInteger( )用来判断一个数是否为整数。需要注意的是,在JS内部,整数和浮点数使用同样的储存方法,所以3和3.0被视为同一个数。
console.log( Number.isInteger(25) ); // true
console.log( Number.isInteger(25.1) ); // false
console.log( Number.isInteger(25.0) ); // true
Number.parseInt( )方法可以根据给定的进制数把一个字符串解析成整数。
语法是:
Number.parseInt(string,[ radix ])
参数string:要解析的值。如果此参数不是字符串,则使用ToString抽象操作将其转换为字符串。忽略此参数中的前导空格。
参数radix:一个介于2到36之间的整数,代表字符串的基数(数学数字系统中的基)。没有指定基数时,默认为10。
从给定字符串中解析的整数。如果基数小于11,且第一个非空白字符不能转换为数字,则返回NaN。
console.log( Number.parseInt === parseInt ); //true
console.log( Number.parseInt(100.20) ); //100
console.log( Number.parseInt ( -1.20) ); // -1
console.log( Number.parseFloat ( -1.20) ); // -1.2
console.log( Number.parseFloat ( true) ); // NaN
安全整数的范围在-253到253之间(注意不包含这两个边界值),Number. isSafeInteger( )则用来判断一个整数是否落在这个范围之内.ES6引入Number.MAX_SAFE_ INTEGER和 Number. MIN_SAFE_INTEGER这两个常量,用来表示这个范围的上下限
先来回顾一下我们的数学方法Math,之前学习过Math.abs(x)用于求x的绝对值; Math.sqrt(9)用于求9的平方根,结果为3 Math.random() 函数返回为随机数在范围从0到小于1,也就是说,从0(包括0)往上,但是不包括1的浮点数。
Math.floor(x)表示将x向下取整。
Math.pow(x,y)求x的y次幂,比如Math.pow(2,3)表示求2的3次方是多少。
Math.round() 返回四舍五入后的整数
Math.ceil(x)是将x向上取整,比如 Math.ceil(12.2) // 13
Math.trunc( )方法
ES6新增的Math.trunc( )方法截取,只保留整数部分。
console.log( Math.trunc(4.1) ); //4
console.log( Math.trunc(4.9) ); //4
console.log( Math.trunc(-4.1) ); //-4
console.log( Math.trunc(-4.9) ); //-4
Math.sign( )方法
ES6新增的Math.sign( X )方法用于判断一个数X到底是正数,负数还是0,如果X是正数就返回1负数就返回-1否则返回0。
console.log( Math.sign(-5) ); // -1
console.log( Math.sign(5) ); // 1
console.log( Math.sign( 0 ) ); // 0
Math.cbrt( )方法
我们知道,开平方根用Math.sqrt( ),而ES6新增的Math.cbrt( X )方法用于将一个数X开立方根。
console.log( Math.sqrt( 16 ) ); // 4
console.log( Math.cbrt( 27 ) ); // 3