16. Math
Math
是具有数据属性和处理数字的方法的对象。
你可以把它看作一个穷人的模块。今天,它可能会被创建为一个模块,但它早在模块之前就存在了。
16.1。数据属性
Math.E: number
[ES1]欧拉数,自然对数的基数,约为 2.7182818284590452354。
Math.LN10: number
[ES1]自然对数为 10,约为 2.302585092994046。
Math.LN2: number
[ES1]自然对数为 2,约为 0.6931471805599453。
Math.LOG10E: number
[ES1]e 与碱基 10 的对数,约为 0.4342944819032518。
Math.LOG2E: number
[ES1]e 对碱 2 的对数,约为 1.4426950408889634。
Math.PI: number
[ES1]数学常数π,圆周长与直径的比值,约为 3.1415926535897932。
Math.SQRT1_2: number
[ES1]平方根为 1/2,约为 0.7071067811865476。
Math.SQRT2: number
[ES1]平方根 2,约为 1.4142135623730951。
16.2。指数,根,对数
Math.cbrt(x: number): number
[ES6]返回
x
的立方根。Math.exp(x: number): number
[ES1]返回 e
x
( e 为欧拉数)。Math.log()
的倒数。Math.expm1(x: number): number
[ES6]返回
Math.exp(x)-1
。Math.log1p()
的倒数。非常小的数字(分数接近 0)以更高的精度表示。只要.exp()
的结果接近 1,此函数就会返回这些值。Math.log(x: number): number
[ES1]返回
x
的自然对数(到 e ,Euler 的数字)。Math.exp()
的倒数。Math.log1p(x: number): number
[ES6]返回
Math.log(1 + x)
。Math.expm1()
的倒数。非常小的数字(分数接近 0)以更高的精度表示。只要.log()
的参数接近 1,此函数就会收到这样的数字。Math.log10(x: number): number
[ES6]返回
x
到 10 的对数。10 ** x
的倒数。Math.log2(x: number): number
[ES6]返回
x
到 base 2 的对数。2 ** x
的倒数。Math.pow(x: number, y: number): number
[ES1]将
x
y
,x
返回到y
的幂。与x ** y
相同。Math.sqrt(x: number): number
[ES1]返回
x
的平方根。x ** 2
的倒数。
16.3。四舍五入
舍入意味着将任意数字转换为整数(不带小数的数字)。 TBL。 15 列出了可用的功能以及它们为少数代表性输入返回的内容。
Table 15: Rounding functions of Math
.
-2.9 |
-2.5 |
-2.1 |
2.1 |
2.5 |
2.9 |
|
---|---|---|---|---|---|---|
Math.floor |
-3 |
-3 |
-3 |
2 |
2 |
2 |
Math.ceil |
-2 |
-2 |
-2 |
3 |
3 |
3 |
Math.round |
-3 |
-2 |
-2 |
2 |
3 |
3 |
Math.trunc |
-2 |
-2 |
-2 |
2 |
2 |
2 |
Math.ceil(x: number): number
[ES1]返回
x
≤i
的最小(最接近-∞)整数i
。Math.floor(x: number): number
[ES1]返回
i
≤x
的最大(最接近+∞)整数i
。Math.round(x: number): number
[ES1]返回最接近
x
的整数。如果x
的小数部分为.5
,则.round()
向上舍入(接近正无穷大的整数):Math.trunc(x: number): number
[ES6]删除
x
的小数部分并返回结果整数。
16.4。三角函数
所有角度均以弧度表示。使用以下两个函数在度和弧度之间进行转换。
Math.acos(x: number): number
[ES1]返回
x
的反余弦(反余弦)。Math.acosh(x: number): number
[ES6]返回
x
的反双曲余弦值。Math.asin(x: number): number
[ES1]返回
x
的反正弦(反正弦)。Math.asinh(x: number): number
[ES6]返回
x
的反双曲正弦值。Math.atan(x: number): number
[ES1]返回
x
的反正切(反正切)。Math.atanh(x: number): number
[ES6]返回
x
的反双曲正切值。Math.atan2(y: number, x: number): number
[ES1]返回商 y / x 的反正切。
Math.cos(x: number): number
[ES1]返回
x
的余弦值。Math.cosh(x: number): number
[ES6]返回
x
的双曲余弦值。Math.hypot(...values: number[]): number
[ES6]返回
values
(毕达哥拉斯定理)的平方和的平方根:Math.sin(x: number): number
[ES1]返回
x
的正弦值。Math.sinh(x: number): number
[ES6]返回
x
的双曲正弦值。Math.tan(x: number): number
[ES1]返回
x
的正切值。Math.tanh(x: number): number;
[ES6]返回
x
的双曲正切值。
16.5。 asm.js 帮手
WebAssembly 是一个基于 JavaScript 的虚拟机,大多数 JavaScript 引擎都支持它。
asm.js 是 WebAssembly 的前身。如果编译静态语言(例如 C ++),它是 JavaScript 的一个子集,可以生成快速可执行文件。在某种程度上,它也是一个虚拟机,在 JavaScript 的范围内。
以下两种方法有助于 asm.js,并且几乎没有用例。
Math.fround(x: number): number
[ES6]将
x
舍入为 32 位浮点值(float
)。由 asm.js 用来告诉引擎在内部使用float
值(正常数字是双倍并占用 64 位)。Math.imul(x: number, y: number): number
[ES6]将两个 32 位整数
x
和y
相乘,并返回结果的低 32 位。 asm.js 需要:通过将 64 位结果强制转换为 32 位,可以模拟所有其他基本的 32 位数学运算。使用乘法,您可能会丢失超过 32 位的结果位。
16.6。各种其他功能
Math.abs(x: number): number
[ES1]返回
x
的绝对值。Math.clz32(x: number): number
[ES6]计算 32 位整数
x
中的前导零位。用于 DSP 算法。Math.max(...values: number[]): number
[ES1]将
values
转换为数字并返回最大的数字。Math.min(...values: number[]): number
[ES1]将
values
转换为数字并返回最小的数字。Math.random(): number
[ES1]返回伪随机数
n
,其中 0≤n
< 1。计算随机整数
i
,其中 0≤i
<max
:Math.sign(x: number): number
[ES6]返回数字的符号: