Chapter 21. Math
Table of contents
Buy the book
(Ad, please don’t block.)

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 of Math.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) of x. This is the inverse of Math.exp().
Math.pow(x, y)

Returns xy, x raised to the power of y:

> 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 uses Math.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;
}

Next: 22. JSON