JavaScript 中的数学对象Math

 2016年05月11日    114     声明


Math是JavaScript中的一个内置对象, 为我们提供了一些数学常量、数学函数。Math是一个静态类,可以通过它属性和方法直接调用其提供的数学常量、数学函数。


  1. Math对象介绍
  2. Math对象中的属性
  3. Math对象中的方法

1. Math对象介绍

Math是一个JavaScript内置对象,同时也是一个全局对象。与其它全局对象不同是,Math并不是一个构造函数,Math所有的属性和方法都是静态的,也就是说属性和方法直接调用。同样,Math也是通过属性和方法直接调用其提供的数学常量、数学函数,如:可通过Math.PI属性来访问常量π


2. Math对象中的属性

2.1 Math.E-欧拉常数

欧拉常数,也是自然对数的底数,其值约等于2.718

Math.E;  // 2.718281828459045


2.2 Math.LN2-2的自然对数

2的自然对数,约等于0.693

Math.LN2; 	// 0.6931471805599453

注:以常数e为底数的对数叫做自然对数,记作lnN(N>0)


2.3 Math.LN10-10的自然对数

10的自然对数,约等于2.303

Math.LN10; 	// 2.302585092994046


2.4 Math.LOG2E-以2为底E对数

2为底E对数,约等于1.443

Math.LOG2E; 	// 1.4426950408889634

注:对数-log(即:logarithms)。如果ab=n,那么logan=b。其中,a叫做底数n叫做真数b叫做以a为底的n的对数f(x)=logax函数叫做对数函数。对数函数中x的定义域是x>0,零和负数没有对数;a的定义域是a>0a≠1


2.5 Math.LOG10E-以10为底E对数

10为底E对数,约等于0.434

Math.LOG10E; 	// 0.4342944819032518


2.6 Math.PI-圆周率

圆周率π值,约等于 3.14159

Math.PI; 	// 3.141592653589793


2.7 Math.SQRT1_2-1/2的平方根

1/2的平方根(√ ̄1/2),约等于0.707

Math.SQRT1_2; 	// 0.7071067811865476

注:平方根(Square root),又叫二次方根,表示为±√ ̄。如果一个非负数x的平方等于a,即 x2=a,(x>=0) ,那么这个非负数x叫做a的算术平方根。a的算术平方根记为√a,读作根号aa叫做被开方数(radicand)。求一个非负数a的平方根的运算叫做开平方。结论:被开方数越大,对应的算术平方根也越大(对所有正数都成立)。


2.8 Math.SQRT2-2的平方根

2的平方根(√2),约等于1.414

Math.SQRT2; 	// 1.4142135623730951


3. Math对象中的方法

Math对象提供的三角函数(sin()cos()tan()asin()acos()atan()atan2())中,是以弧度返回值的。可以通过除法(Math.PI / 180)把弧度转换为角度,也可以通过其他方法来转换。

另外,很多数学函数都有一个精度,且精度在不同环境下也是不相同的。这就意味着在不同的浏览器中会得出不同的结果,甚至相同的JS引擎在不同的操作系统或者架构下也会给出不同的结果。

3.1 Math.abs(x)-绝对值

计算x的绝对值。

Math.abs(2);	// 2
Math.abs(-2);	// 2

注:一个数在坐标轴上所对应点到原点的距离叫做这个数的绝对值(absolute value)。绝对值用| |来表示,如:|b-a||a-b|表示坐标轴上点a和点a的距离。


3.2 Math.acos(x)-反余弦值

计算x的反余弦值。

Math.acos(0.3);	// 1.266103672779499

注:反余弦(arccosine,arccos,cos-1)是反三角函数之一。x=cos y[0,π]上的反函数,叫做反余弦函数。记作arccosx,表示一个余弦值为x的角,该角的范围在[0,π]区间内。定义域[-1,1] ,值域[0,π]

反三角函数是一种基本初等函数。它并不能狭义的理解为三角函数的反函数,是个多值函数。它是反正弦arcsin x,反余弦arccos x,反正切arctan x,反余切arccot x,反正割arcsec x,反余割arccsc x这些函数的统称,各自表示其反正弦、反余弦、反正切、反余切 ,反正割,反余割为x的角。


3.3 Math.acosh(x)-反双曲余弦值

计算x的反双曲余弦值。

Math.acosh(3);		// 1.762747174039086

注:反双曲余弦函数(inverse hyperbolic function)记作y=arcoshx。反双曲余弦函数的定义域为[1, ∞],它是非奇非偶函数,在区间[1, ∞]内单调增加。

双曲函数(Hyperbolic function),在数学中,双曲函数类似于常见的(也叫圆函数的)三角函数。基本双曲函数是双曲正弦sinh,双曲余弦cosh,从它们导出双曲正切tanh等。也类似于三角函数的推导,反函数是反双曲正弦arsinh(也arcsinhasinh)依此类推。

反双曲函数是双曲函数的反函数,记为(arsinharcoshartanh等)。与反三角函数不同之处是它的前缀是ar意即area(面积),而不是arc(弧)。因为双曲角是以双曲线、通过原点直线以及其对x轴的映射三者之间所夹面积定义的,而圆角是以弧长与半径的比值定义。


3.4 Math.asin(x)-反正弦值

计算x的反正弦值。

Math.asin(0.3);	// 0.30469265401539747

注:反正弦函数(arcsine)是反三角函数之一。表示一个正弦值为x的角,记作y=arcsinxsiny=xx∈[-1,1]y∈[-π/2,π/2]。定义域为[-1,1],值域[-π/2,π/2]


3.5 Math.asinh(x)-反双曲正弦值

计算x的反双曲正弦值。

Math.asinh(3);		// 1.8184464592320668
Math.asinh(-3);		// -1.8184464592320668

注:反双曲正弦函数反双曲函数之一。记作y=arsinhx定义为y=sinhx=(ex-e-x)/2。定义域为[-∞,+∞],它是奇函数,在[-∞,+∞]范围内单调增加。


3.6 Math.atan(x)-反正切值

计算x的反正切值。

Math.atan(3);		// 1.2490457723982544
Math.atan(-3);		// -1.2490457723982544

注:反正切函数arctan反三角函数之一。是y=tanx,(x∈R的反函数,记作y=arctanx。定义域为R,值域(-π/2,π/2),它是奇函数,在[-∞,+∞]范围内单调增加。


3.7 Math.atanh(x)-反双曲正切值

计算x的反双曲正切值。

Math.atanh(0.3);		// 0.3095196042031118
Math.atanh(-0.3);		// -0.30951960420311175

注:反双曲正切函数反双曲函数之一。记作y=artanhx,其定义为y=artanhx=1/2ln((1+x)/(1-x))。定义域为(-1, 1),它是奇函数,在(-1, 1)范围内单调增加。


3.8 Math.atan2(x, y)-y/x反正切值

计算y/x的反正切值。

Math.atan(3, 2);		// 1.2490457723982544


3.9 Math.cbrt(x)-立方根

计算x的立方根。

Math.cbrt(3);		// 1.4422495703074083

注:平方根(cube root),又叫二次方根,表示为±3√ ̄。如果一个非负数x的言方等于a,即 x3=a,(x>=0) ,那么这个非负数x叫做a的算术立方根。a的算术平方根记为3√a


3.10 Math.ceil(x)-向上取整

计算x向上取整后的值。

Math.ceil(3.4);		// 4


3.11 Math.clz32(x)-32位前导0整数

返回x32位前导0整数。

Math.clz32(3);		// 30
Math.clz32(-3);		// 0


3.12 Math.cos(x)-余弦值

计算x的余弦值。

Math.cos(0.3);		// 0.955336489125606

注:余弦(cosine),三角函数的一种。在Rt△ABC(直角三角形)中,∠C=90°,角A的余弦是它的邻边比三角形的斜边,即cosA=b/c,也可写为cosA=AC/AB。余弦函数:f(x)=cosx(x∈R)。定义域为R,值域[-1,1]。余弦是周期函数,其最小正周期为。在自变量为2kπ(k为整数)时,该函数有极大值1;在自变量为(2k+1)π时,该函数有极小值-1

三角函数是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数。也可以等价地用与单位圆有关的各种线段的长度来定义。包括sin正弦、cos余弦、tan正切、cot余切、sec正割、csc余割,6种三角函数。


3.13 Math.cosh(x)-双曲余弦值

计算x的双曲余弦值。

Math.cosh(0);		// 1

注:双曲余弦(hyperbolic cosine),双曲函数的一种。一般的定义是在双曲线x2-y2=1 (该双曲线又叫做单位双曲线)中,射线出原点交单位双曲线于点(cosha,sinha)。这里的a是射线、双曲线与x轴围成的面积的两倍。对于双曲线上位于x轴下方的点,这个面积被认为是负值。 而其中,cosha就是a的双曲余弦函数,其定义为coshx=(ex+e-x)/2。定义域为(-∞,+∞),值域[1, +∞]。当x=0时,取到最小值1


3.14 Math.exp(x)-Ex

计算Ex,这里x为参数, E是欧拉常数(2.718...),即:自然对数的底。

Math.exp(3);		// 20.085536923187668


3.15 Math.expm1(x)-Ex-1

计算Ex-1

Math.expm1(3);		// 19.085536923187668


3.16 Math.floor(x)-最大整数

返回小于x的最大整数。

Math.floor(3.3);		// 3


3.17 Math.hypot([x[,y[,…]]])-平方根和

返回参数中所有数的平方根之和。

Math.hypot(1, 2);		// 2.23606797749979


3.18 Math.imul(x, y)-乘

返回一个32位整数乘法的结果。

Math.imul(3, 2);		// 6


3.19 Math.log(x)-对数

计算E为底x(loge)的对数

Math.log(3);		// 1.0986122886681098

对数(logarithm)如果a的x次方等于N(a>0,且a不等于1),即ax=N,那么x叫做以a为底N的对数,记作x=logaNx=logaN。其中,a叫做对数的底数,N叫做真数。


3.20 Math.log1p(x)-x+1对数

计算x+1(loge)的对数

Math.log1p(2);		// 1.0986122886681098


3.21 Math.log10(x)-以10为底x对数

计算以10为底x的对数

Math.log10(3);		// 0.47712125471966244


3.22 Math.log2(x)-以2为底x对数

计算以2为底x的对数

Math.log2(4);		// 2


3.23 Math.max([x[, y[, …]]])-最大值

返回参数中的最大值

Math.max(1,2,3);		// 3


3.24 Math.mix([x[, y[, …]]])-最小值

返回参数中的最小值

Math.mix(1,2,3);		// 1


3.25 Math.pow(x, y)-幂值

计算xy次幂,即:xy

Math.pow(2,3);		// 8


3.26 Math.random()-随机数

返回0〜1之间的一个随机数

Math.random();		// 0.9357421763706952


3.27 Math.round(x)-四舍五入

返回x四舍五入后的整数

Math.round(3.5);		// 4


3.28 Math.sign(x)-正负判断

返回x的数据类型,返回值为-1/10

Math.sign(3);		// 1
Math.sign(-3);		// -1
Math.sign(0);		// 0


3.29 Math.sin(x)-正弦

计算x的正弦值

Math.sin(0.3);		// 0.29552020666133955

正弦(sine)是三角函数的一种。在直角三角形中,任意一锐角∠A的对边与斜边的比叫做∠A的正弦,记作sinA,即sinA=∠A的对边/斜边。定义域为R,值域[-1,1]


3.30 Math.sinh(x)-双曲正弦

计算x的双曲正弦值

Math.sinh(3);		// 10.017874927409903

双曲正弦函数(hyperbolic sine)是双曲函数的一种。记作sinh,定义为sinh=(ex-e-x)/2。定义域为(-∞,+∞),值域为(-∞,+∞)


3.31 Math.sqrt(x)-平方根

计算x的平方根

Math.sqrt(4);		// 2


3.32 Math.tan(x)-正切

计算x的正切值

Math.tan(0.3);		// 0.30933624960962325

正切(tangent)是三角函数的一种。在直角三角形Rt△ABC中,∠C=90°AB∠C的对边cBC∠A的对边aAC∠B的对边b,正切函数就是tanA=a/b,即tanA=BC/AC。定义域为{x|x≠(π/2)+kπ,k∈Z},值域R


3.33 Math.tanh(x)-双曲正切

计算x的双曲正切值

Math.tan(3);		// 0.9950547536867306

双曲正切函数(hyperbolic tangent)是双曲函数的一种。记作tanh(也可以简写为th),定义为tanh=sinh/cosh。定义域为(-∞,+∞),值域为(-1,1)


3.34 Math.trunc(x)-取整

返回x的整数部分

Math.trunc(3.32423);		// 3