美文网首页es6
阮一峰es6要点总结——数值的扩展

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

作者: 布蕾布蕾 | 来源:发表于2017-03-31 10:31 被阅读68次

笔记,完全摘录自阮一峰

1.

扩展Number内置对象上的方法

  • 扩展方法
  • 原全局方法,现挂载到Number对象,避免给全局对象暴露过多接口

  • Number.isFinite()Number.isNaN()

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

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

  • Number.parseInt()Number.parsefloat()

原方法移植到Number对象上。

  • Number.isInteger()
    判断一个数,是否为整数。
    由于JavaScript整数,浮点数统一的存储方法,所以33.0被视为同一个值。

  • Number.EPSILON
    新增的一个极小常量,由于浮点数计算精度问题,导致计算不准确。
    当计算误差小于这个常量Number.EPSILON时候吗,我们可以认为,得到了正确结果。

  • Number.isSafeInterger()
    JavaScript的安全数范围是-2^532^53(不含端点)。
    ES6引入Number.MAX_SAFE_INTEGERNumber.MIN_SAFE_INTEGER来表示上下限。
    Number.isSafeInterger()来检测数值是否处于安全范围。

2.

Math对象的扩展

新增了17个方法

  • Math.trunc()
    取一个数的整数部分。
    非数值,调用Number()方法。
    无法取值或空值,返回NaN

  • Math.sign()
    来判断一个数到底是正数、负数、还是零。

  • 参数为正数,返回+1;

  • 参数为负数,返回-1;

  • 参数为0,返回0;

  • 参数为-0,返回-0;

  • 其他值,返回NaN。

  • Math.cbrt()
    计算一个数的立方根
    非数值调用Number()

  • Math.clz32()
    JavaScript整数也用32位二进制表示,Math.clz32()返回一个数的32位无符号整数形式有多少个前导0.

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
  • Math.imul()
    返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的带符号整数。

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

  • Math.fround()
    返回一个数的单精度浮点数形式。

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

  • Math.hypot()
    返回所有参数的平方和的平方根。
    如果参数不是数值,Math.hypot方法会将其转为数值。只要有一个参数无法转为数值,就会返回NaN

  • 对数方法

  • Math.expm1()
    返回e^x - 1,即Math.exp(x) - 1

  • Math.log1p()
    返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN

  • Math.log10()
    返回以10为底的x的对数。如果x小于0,则返回NaN。

  • Math.log2()
    返回以2为底的x的对数。如果x小于0,则返回NaN。

  • 三角函数方法

  • Math.sinh(x) 返回x的双曲正弦(hyperbolic sine)

  • Math.cosh(x) 返回x的双曲余弦(hyperbolic cosine)

  • Math.tanh(x) 返回x的双曲正切(hyperbolic tangent)

  • Math.asinh(x) 返回x的反双曲正弦(inverse hyperbolic sine)

  • Math.acosh(x) 返回x的反双曲余弦(inverse hyperbolic cosine)

  • Math.atanh(x) 返回x的反双曲正切(inverse hyperbolic tangent)

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

二进制,八进制表示法

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

相关文章

  • ES6数值扩展

    阮一峰大神的ES6数值篇已经写的很好很全,下边贴出链接,然后斗胆写一点自己学习的总结。阮一峰ES6数值扩展我准备从...

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

    笔记,完全摘录自阮一峰 1. 扩展Number内置对象上的方法 扩展方法 原全局方法,现挂载到Number对象,避...

  • ES6扩展归纳

    ES6扩展归纳 介绍ES6相比与ES5在原有对象上的扩展,包括字符串、正则、数值、函数、数组、对象等扩展,本文是阮...

  • 阮一峰es6要点总结——字符串扩展

    笔记,完全摘录自阮一峰 全面支持两个双字节的Unicode码点 表示方法--大括号加码点 新增方法支持大码点 co...

  • 阮一峰es6要点总结——Proxy

    笔记,完全摘录自阮一峰 proxy的概念 proxy英文原意是代理的意思,在ES6中,可以翻译为"代理器"。它主要...

  • 阮一峰es6要点总结——Generator

    笔记,总结摘录自阮一峰笔记中有不少自己看书的总结 基本概念 核心目的:异步编程解决方案 关键概念:状态机,执行权限...

  • es6 部分方法总结

    部分列子引用的阮一峰ES6教程中的例子 这篇文章主要是自己经常用得一些方法总结, 想全篇学习es6, 可以看阮一峰...

  • 阮一峰es6要点总结——解构赋值

    原文地址 解构赋值 核心思想——模式匹配 基本概念 用法: 数组解构赋值 对象解构赋值 字符串解构赋值 数值和布尔...

  • 阮一峰es6要点总结——遍历器

    笔记,总结摘录自阮一峰 Iterator基本概念 Iterator(遍历器)是一种接口,为不同的数据结构提供统一的...

  • 4.字符串的扩展(学习笔记)

    所有内容基于阮一峰的ECMAScript 6 入门 ES6加强了对Unicode 的支持,并且扩展了字符串对象。 ...

网友评论

    本文标题:阮一峰es6要点总结——数值的扩展

    本文链接:https://www.haomeiwen.com/subject/gnvmottx.html