es6

阮一峰es6要点总结——数值的扩展

2017-03-31  本文已影响68人  布蕾布蕾

笔记,完全摘录自阮一峰

1.

扩展Number内置对象上的方法

  • 扩展方法

Number.isFinite(num)检测数值是否为无限
Number.isNaN(num)检测参数是否为NaN

与全局方法的区别
全局方法的处理方法是,先对参数调用Number()方法,转换为数值,再判断
新方法,Number.isFinite()对于非数值一律返回falseNumber.isNaN()只对于NaN返回true,非NaN一律返回false

原方法移植到Number对象上。

2.

Math对象的扩展

新增了17个方法

clz32这个函数名就来自”count leading zero bits in 32-bit binary representations of a number“(计算32位整数的前导0)的缩写。

对于小数,该方法只考虑整数部分。

其他类型数,Math.clz32会先将其转换数值。

Math.clz32() // 32
Math.clz32(NaN) // 32
Math.clz32(Infinity) // 32
Math.clz32(null) // 32
Math.clz32('foo') // 32
Math.clz32([]) // 32
Math.clz32({}) // 32
Math.clz32(true) // 31

用于解决过大数据(超过2的53次幂)相乘计算结果不正确的问题。

对于整数来说,Math.fround方法返回结果不会有任何不同,区别主要是那些无法用64个二进制位精确表示的小数。这时,Math.fround方法会返回最接近这个小数的单精度浮点数。

好吧,感觉回到高数课堂了,,,不过,做图会方便很多吧。

二进制,八进制表示法

ES6明确规定,
二进制要用0b/0B前缀
八进制要用0o/0O前缀

上一篇 下一篇

猜你喜欢

热点阅读