buy the book to support the author.
Chapter 21. Math
The Math
object is used as a namespace for several math functions. This chapter provides an overview.
Math Properties
The properties of Math
are as follows:
Math.E
- Euler’s constant (e)
Math.LN2
- Natural logarithm of 2
Math.LN10
- Natural logarithm of 10
Math.LOG2E
- Base 2 logarithm of e
Math.LOG10E
- Base 10 logarithm of e
Math.PI
- The ratio of the circumference of a circle to its diameter (3.14159 …), π
Math.SQRT1_2
- The square root of one-half,
Math.SQRT2
- The square root of two,
Numerical Functions
The numerical functions of Math
include the following:
Math.abs(x)
- Returns the absolute value of
x
. Math.ceil(x)
- Returns the smallest integer ≥
x
:
- > Math.ceil(3.999)
- 4
- > Math.ceil(3.001)
- 4
- > Math.ceil(-3.001)
- -3
- > Math.ceil(3.000)
- 3
For more on converting floating-point numbers to integers, see Converting to Integer.
Math.exp(x)
- Returns ex where e is Euler’s constant (
Math.E
). This is the inverse ofMath.log()
. Math.floor(x)
- Returns the largest integer ≤
x
:
- > Math.floor(3.999)
- 3
- > Math.floor(3.001)
- 3
- > Math.floor(-3.001)
- -4
- > Math.floor(3.000)
- 3
For more on converting floating-point numbers to integers, see Converting to Integer.
Math.log(x)
- Returns the natural (base is Euler’s constant) logarithm ln(
x
) ofx
. This is the inverse ofMath.exp()
. Math.pow(x, y)
- Returns xy,
x
raised to the power ofy
:
- > Math.pow(9, 2)
- 81
- > Math.pow(36, 0.5)
- 6
Math.round(x)
- Returns
x
rounded to the nearest integer (the greater one if it is between two integers):
- > Math.round(3.999)
- 4
- > Math.round(3.001)
- 3
- > Math.round(3.5)
- 4
- > Math.round(-3.5)
- -3
For more on converting floating-point numbers to integers, see Converting to Integer.
Math.sqrt(x)
- Returns , the square root of
x
:
- > Math.sqrt(256)
- 16
Trigonometric Functions
The trigonometric methods accept and return angles as radians. The following functions show you how you could implement conversions, should you need to:
- From degrees to radians:
function
toRadians
(
degrees
)
{
return
degrees
/
180
*
Math
.
PI
;
}
Here is the interaction:
- > toRadians(180)
- 3.141592653589793
- > toRadians(90)
- 1.5707963267948966
- From radians to degrees:
function
toDegrees
(
radians
)
{
return
radians
/
Math
.
PI
*
180
;
}
Here is the interaction:
- > toDegrees(Math.PI * 2)
- 360
- > toDegrees(Math.PI)
- 180
The trigonometric methods are as follows:
Math.acos(x)
- Returns the arc cosine of
x
. Math.asin(x)
- Returns the arc sine of
x
. Math.atan(x)
- Returns the arc tangent of
x
. Math.atan2(y, x)
- Returns the arc tangent of the quotient .
Math.cos(x)
- Returns the cosine of
x
. Math.sin(x)
- Returns the sine of
x
. Math.tan(x)
- Returns the tangent of
x
.
Other Functions
Following are the remaining Math
functions:
Math.min(x1?, x2?, …)
- Returns the smallest number among the parameters:
- > Math.min()
- Infinity
- > Math.min(27)
- 27
- > Math.min(27, -38)
- -38
- > Math.min(27, -38, -43)
- -43
Use it on arrays via apply()
(see func.apply(thisValue, argArray)):
- > Math.min.apply(null, [27, -38, -43])
- -43
Math.max(x1?, x2?, …)
- Returns the largest number among the parameters:
- > Math.max()
- -Infinity
- > Math.max(7)
- 7
- > Math.max(7, 10)
- 10
- > Math.max(7, 10, -333)
- 10
Use it on arrays via apply()
(see func.apply(thisValue, argArray)):
- > Math.max.apply(null, [7, 10, -333])
- 10
Math.random()
- Returns a pseudorandom number
r
, 0 ≤r
< 1.The following function usesMath.random()
to compute a random integer:
/**
* Compute a random integer within the given range.
*
* @param [lower] Optional lower bound. Default: zero.
* @returns A random integer i, lower ≤ i < upper
*/
function
getRandomInteger
(
lower
,
upper
)
{
if
(
arguments
.
length
===
1
)
{
upper
=
lower
;
lower
=
0
;
}
return
Math
.
floor
(
Math
.
random
()
*
(
upper
-
lower
))
+
lower
;
}