es6学习笔记(五)
其他
2018-12-12 21:10:03
阅读次数: 0
数值的扩展
新增方法
- ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。
0b111110111 === 503 // true
0o767 === 503 // true
//如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法
Number('0b111') // 7
Number('0o10') // 8
- Number.isFinite()用来检查一个数值是否为有限的,对于非数值一律返回false,而不会将非数值转换成数值
Number.isFinite('15'); //false
- Number.isNaN()用来检查一个值是否为NaN,只有对于NaN才返回true,非NaN一律返回false
Number.isNaN('15'); //false
- Number.isInteger()用来判断一个数值是否为整数
//JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值
Number.isInteger(25) // true
Number.isInteger(25.0) // true
//如果参数不是数值,Number.isInteger返回false
Number.isInteger() // false
Number.isInteger(null) // false
Number.isInteger('15') // false
Number.isInteger(true) // false
//如果对数据精度的要求较高,不建议使用Number.isInteger()判断一个数值是否为整数
//小数的精度达到了小数点后16个
Number.isInteger(3.0000000000000002) // true
- Number.EPSILON()它表示 1 与大于 1 的最小浮点数之间的差,可以用来设置“能够接受的误差范围”
function withinErrorMargin (left, right) {
return Math.abs(left - right) < Number.EPSILON * Math.pow(2, 2);
}
0.1 + 0.2 === 0.3 // false
withinErrorMargin(0.1 + 0.2, 0.3) // true
1.1 + 1.3 === 2.4 // false
withinErrorMargin(1.1 + 1.3, 2.4) // true
- Math 对象的扩展
- Math.trunc方法用于去除一个数的小数部分,返回整数部分。
//对于非数值,Math.trunc内部使用Number方法将其先转为数值
Math.trunc('123.456') // 123
Math.trunc(true) //1
Math.trunc(false) // 0
Math.trunc(null) // 0
//对于空值和无法截取整数的值,返回NaN
Math.trunc(NaN); // NaN
Math.trunc('foo'); // NaN
Math.trunc(); // NaN
Math.trunc(undefined) // NaN
- Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值,对于那些无法转为数值的值,会返回NaN
它会返回五种值:
a.参数为正数,返回+1;
b.参数为负数,返回-1;
c.参数为 0,返回0;
d.参数为-0,返回-0;
e.其他值,返回NaN。
- Math.cbrt方法用于计算一个数的立方根。对于非数值,Math.cbrt方法内部也是先使用Number方法将其转为数值
方法调整
- ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变
- Number.parseInt()
- Number.parseFloat()
转载自blog.csdn.net/weixin_43756060/article/details/84565557