Table of Contents | Previous | Next | Index

# Math

A built-in object that has properties and methods for mathematical constants and functions. For example, the `Math` object's `PI` property has the value of pi.

Core object
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Created by

The `Math` object is a top-level, predefined JavaScript object. You can automatically access it without using a constructor or calling a method.

#### Description

All properties and methods of `Math` are static. You refer to the constant PI as `Math.PI` and you call the sine function as `Math.sin(x)`, where `x` is the method's argument. Constants are defined with the full precision of real numbers in JavaScript. It is often convenient to use the `with` statement when a section of code uses several `Math` constants and methods, so you don't have to type "Math" repeatedly. For example,

    with (Math) {
       a = PI * r*r
       y = r*sin(theta)
       x = r*cos(theta)
    }

#### Property Summary

Property | Description
--- | ---
    E
| Euler's constant and the base of natural logarithms, approximately 2.718.
    LN10
| Natural logarithm of 10, approximately 2.302.
    LN2
| Natural logarithm of 2, approximately 0.693.
    LOG10E
| Base 10 logarithm of E (approximately 0.434).
    LOG2E
| Base 2 logarithm of E (approximately 1.442).
    PI
| Ratio of the circumference of a circle to its diameter, approximately 3.14159.
    SQRT1_2
| Square root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707.
    SQRT2
| Square root of 2, approximately 1.414.

#### Method Summary

Method | Description
--- | ---
    abs
| Returns the absolute value of a number.
    acos
| Returns the arccosine (in radians) of a number.
    asin
| Returns the arcsine (in radians) of a number.
    atan
| Returns the arctangent (in radians) of a number.
    atan2
| Returns the arctangent of the quotient of its arguments.
    ceil
| Returns the smallest integer greater than or equal to a number.
    cos
| Returns the cosine of a number.
    exp
| Returns Enumber, where `number` is the argument, and E is Euler's constant, the base of the natural logarithms.
    floor
| Returns the largest integer less than or equal to a number.
    log
| Returns the natural logarithm (base E) of a number.
    max
| Returns the greater of two numbers.
    min
| Returns the lesser of two numbers.
    pow
| Returns `base` to the `exponent` power, that is, `base`exponent.
    random
| Returns a pseudo-random number between 0 and 1.
    round
| Returns the value of a number rounded to the nearest integer.
    sin
| Returns the sine of a number.
    sqrt
| Returns the square root of a number.
    tan
| Returns the tangent of a number.

In addition, this object inherits the `watch` and `unwatch` methods from `Object`.

## abs

Returns the absolute value of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    abs(x)

#### Parameters

    x
| A number

#### Examples

The following function returns the absolute value of the variable `x`:

    function getAbs(x) {
       return Math.abs(x)
    }

#### Description

Because `abs` is a static method of `Math`, you always use it as `Math.abs()`, rather than as a method of a `Math` object you created.

## acos

Returns the arccosine (in radians) of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    acos(x)

#### Parameters

    x
| A number

#### Description

The `acos` method returns a numeric value between 0 and pi radians. If the value of `number` is outside this range, it returns `NaN`. Because `acos` is a static method of `Math`, you always use it as `Math.acos()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the arccosine of the variable `x`:

    function getAcos(x) {
       return Math.acos(x)
    }

If you pass -1 to `getAcos`, it returns 3.141592653589793; if you pass 2, it returns `NaN` because 2 is out of range.

#### See also

`Math.asin`, `Math.atan`, `Math.atan2`, `Math.cos`, `Math.sin`, `Math.tan`

## asin

Returns the arcsine (in radians) of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    asin(x)

#### Parameters

    x
| A number

#### Description

The `asin` method returns a numeric value between -pi/2 and pi/2 radians. If the value of `number` is outside this range, it returns `NaN`. Because `asin` is a static method of `Math`, you always use it as `Math.asin()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the arcsine of the variable `x`:

    function getAsin(x) {
       return Math.asin(x)
    }

If you pass `getAsin` the value 1, it returns 1.570796326794897 (pi/2); if you pass it the value 2, it returns `NaN` because 2 is out of range.

#### See also

`Math.acos`, `Math.atan`, `Math.atan2`, `Math.cos`, `Math.sin`, `Math.tan`

## atan

Returns the arctangent (in radians) of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    atan(x)

#### Parameters

    x
| A number

#### Description

The `atan` method returns a numeric value between -pi/2 and pi/2 radians. Because `atan` is a static method of `Math`, you always use it as `Math.atan()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the arctangent of the variable `x`:

    function getAtan(x) {
       return Math.atan(x)
    }

If you pass `getAtan` the value 1, it returns 0.7853981633974483; if you pass it the value .5, it returns 0.4636476090008061.

#### See also

`Math.acos`, `Math.asin`, `Math.atan2`, `Math.cos`, `Math.sin`, `Math.tan`

## atan2

Returns the arctangent of the quotient of its arguments.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    atan2(y, x)

#### Parameters

    y, x
| Number

#### Description

The `atan2` method returns a numeric value between -pi and pi representing the angle theta of an (`x,y`) point. This is the counterclockwise angle, measured in radians, between the positive X axis, and the point (`x,y`). Note that the arguments to this function pass the y-coordinate first and the x-coordinate second. `atan2` is passed separate `x` and `y` arguments, and `atan` is passed the ratio of those two arguments. Because `atan2` is a static method of `Math`, you always use it as `Math.atan2()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the angle of the polar coordinate:

    function getAtan2(x,y) {
       return Math.atan2(x,y)
    }

If you pass `getAtan2` the values (90,15), it returns 1.4056476493802699; if you pass it the values (15,90), it returns 0.16514867741462683.

#### See also

`Math.acos`, `Math.asin`, `Math.atan`, `Math.cos`, `Math.sin`, `Math.tan`

## ceil

Returns the smallest integer greater than or equal to a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    ceil(x)

#### Parameters

    x
| A number

#### Description

Because `ceil` is a static method of `Math`, you always use it as `Math.ceil()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the ceil value of the variable `x`:

    function getCeil(x) {
       return Math.ceil(x)
    }

If you pass 45.95 to `getCeil`, it returns 46; if you pass -45.95, it returns -45.

#### See also

`Math.floor`

## cos

Returns the cosine of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    cos(x)

#### Parameters

    x
| A number

#### Description

The `cos` method returns a numeric value between -1 and 1, which represents the cosine of the angle. Because `cos` is a static method of `Math`, you always use it as `Math.cos()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the cosine of the variable `x`:

    function getCos(x) {
       return Math.cos(x)
    }

If `x` equals 2*`Math.PI`, `getCos` returns 1; if `x` equals `Math.PI`, the `getCos` method returns -1.

#### See also

`Math.acos`, `Math.asin`, `Math.atan`, `Math.atan2`, `Math.sin`, `Math.tan`

## E

Euler's constant and the base of natural logarithms, approximately 2.718.

Property of | `Math`
Static, Read-only
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Description

Because `E` is a static property of `Math`, you always use it as `Math.E`, rather than as a property of a `Math` object you created.

#### Examples

The following function returns Euler's constant:

    function getEuler() {
       return Math.E
    }

## exp

Returns Ex, where `x` is the argument, and `E` is Euler's constant, the base of the natural logarithms.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    exp(x)

#### Parameters

    x
| A number

#### Description

Because `exp` is a static method of `Math`, you always use it as `Math.exp()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the exponential value of the variable `x`:

    function getExp(x) {
       return Math.exp(x)
    }

If you pass `getExp` the value 1, it returns 2.718281828459045.

#### See also

`Math.E`, `Math.log`, `Math.pow`

## floor

Returns the largest integer less than or equal to a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    floor(x)

#### Parameters

    x
| A number

#### Description

Because `floor` is a static method of `Math`, you always use it as `Math.floor()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the floor value of the variable `x`:

    function getFloor(x) {
       return Math.floor(x)
    }

If you pass 45.95 to `getFloor`, it returns 45; if you pass -45.95, it returns -46.

#### See also

`Math.ceil`

## LN10

The natural logarithm of 10, approximately 2.302.

Property of | `Math`
Static, Read-only
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Examples

The following function returns the natural log of 10:

    function getNatLog10() {
       return Math.LN10
    }

#### Description

Because `LN10` is a static property of `Math`, you always use it as `Math.LN10`, rather than as a property of a `Math` object you created.

## LN2

The natural logarithm of 2, approximately 0.693.

Property of | `Math`
Static, Read-only
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Examples

The following function returns the natural log of 2:

    function getNatLog2() {
       return Math.LN2
    }

#### Description

Because `LN2` is a static property of `Math`, you always use it as `Math.LN2`, rather than as a property of a `Math` object you created.

## log

Returns the natural logarithm (base `E`) of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    log(x)

#### Parameters

    x
| A number

#### Description

If the value of `number` is negative, the return value is always `NaN`. Because `log` is a static method of `Math`, you always use it as `Math.log()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the natural log of the variable `x`:

    function getLog(x) {
       return Math.log(x)
    }

If you pass `getLog` the value 10, it returns 2.302585092994046; if you pass it the value 0, it returns `-Infinity`; if you pass it the value -1, it returns `NaN` because -1 is out of range.

#### See also

`Math.exp`, `Math.pow`

## LOG10E

The base 10 logarithm of E (approximately 0.434).

Property of | `Math`
Static, Read-only
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Examples

The following function returns the base 10 logarithm of `E`:

    function getLog10e() {
       return Math.LOG10E
    }

#### Description

Because `LOG10E` is a static property of `Math`, you always use it as `Math.LOG10E`, rather than as a property of a `Math` object you created.

## LOG2E

The base 2 logarithm of E (approximately 1.442).

Property of | `Math`
Static, Read-only
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Examples

The following function returns the base 2 logarithm of E:

    function getLog2e() {
       return Math.LOG2E
    }

#### Description

Because `LOG2E` is a static property of `Math`, you always use it as `Math.LOG2E`, rather than as a property of a `Math` object you created.

## max

Returns the larger of two numbers.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    max(x,y)

#### Parameters

    x, y
| Numbers.

#### Description

Because `max` is a static method of `Math`, you always use it as `Math.max()`, rather than as a method of a `Math` object you created.

#### Examples

The following function evaluates the variables `x` and `y`:

    function getMax(x,y) {
       return Math.max(x,y)
    }

If you pass `getMax` the values 10 and 20, it returns 20; if you pass it the values -10 and -20, it returns -10.

#### See also

`Math.min`

## min

Returns the smaller of two numbers.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    min(x,y)

#### Parameters

    x, y
| Numbers.

#### Description

Because `min` is a static method of `Math`, you always use it as `Math.min()`, rather than as a method of a `Math` object you created.

#### Examples

The following function evaluates the variables `x` and `y`:

    function getMin(x,y) {
       return Math.min(x,y)
    }

If you pass `getMin` the values 10 and 20, it returns 10; if you pass it the values -10 and -20, it returns -20.

#### See also

`Math.max`

## PI

The ratio of the circumference of a circle to its diameter, approximately 3.14159.

Property of | `Math`
Static, Read-only
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Examples

The following function returns the value of pi:

    function getPi() {
       return Math.PI
    }

#### Description

Because `PI` is a static property of `Math`, you always use it as `Math.PI`, rather than as a property of a `Math` object you created.

## pow

Returns `base` to the `exponent` power, that is, `base`exponent.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    pow(x,y)

#### Parameters

    base
| The base number
    exponent
| The exponent to which to raise `base`

#### Description

Because `pow` is a static method of `Math`, you always use it as `Math.pow()`, rather than as a method of a `Math` object you created.

#### Examples

    function raisePower(x,y) {
       return Math.pow(x,y)
    }

If `x` is 7 and `y` is 2, `raisePower` returns 49 (7 to the power of 2).

#### See also

`Math.exp`, `Math.log`

## random

Returns a pseudo-random number between 0 and 1. The random number generator is seeded from the current time, as in Java.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0: Unix only JavaScript 1.1, NES 2.0: all platforms
ECMA version | ECMA-262

#### Syntax

    random()

#### Parameters

None.

#### Description

Because `random` is a static method of `Math`, you always use it as `Math.random()`, rather than as a method of a `Math` object you created.

#### Examples

    //Returns a random number between 0 and 1
    function getRandom() {
       return Math.random()
    }

## round

Returns the value of a number rounded to the nearest integer.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    round(x)

#### Parameters

    x
| A number

#### Description

If the fractional portion of `number` is .5 or greater, the argument is rounded to the next higher integer. If the fractional portion of `number` is less than .5, the argument is rounded to the next lower integer. Because `round` is a static method of `Math`, you always use it as `Math.round()`, rather than as a method of a `Math` object you created.

#### Examples

    //Returns the value 20
    x=Math.round(20.49)

    //Returns the value 21
    x=Math.round(20.5)

    //Returns the value -20
    x=Math.round(-20.5)

    //Returns the value -21
    x=Math.round(-20.51)

## sin

Returns the sine of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    sin(x)

#### Parameters

    x
| A number

#### Description

The `sin` method returns a numeric value between -1 and 1, which represents the sine of the argument. Because `sin` is a static method of `Math`, you always use it as `Math.sin()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the sine of the variable `x`:

    function getSine(x) {
       return Math.sin(x)
    }

If you pass `getSine` the value `Math.PI/2`, it returns 1.

#### See also

`Math.acos`, `Math.asin`, `Math.atan`, `Math.atan2`, `Math.cos`, `Math.tan`

## sqrt

Returns the square root of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    sqrt(x)

#### Parameters

    x
| A number

#### Description

If the value of `number` is negative, `sqrt` returns `NaN`. Because `sqrt` is a static method of `Math`, you always use it as `Math.sqrt()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the square root of the variable `x`:

    function getRoot(x) {
       return Math.sqrt(x)
    }

If you pass `getRoot` the value 9, it returns 3; if you pass it the value 2, it returns 1.414213562373095.

## SQRT1_2

The square root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707.

Property of | `Math`
Static, Read-only
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Examples

The following function returns 1 over the square root of 2:

    function getRoot1_2() {
       return Math.SQRT1_2
    }

#### Description

Because `SQRT1_2` is a static property of `Math`, you always use it as `Math.SQRT1_2`, rather than as a property of a `Math` object you created.

## SQRT2

The square root of 2, approximately 1.414.

Property of | `Math`
Static, Read-only
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Examples

The following function returns the square root of 2:

    function getRoot2() {
       return Math.SQRT2
    }

#### Description

Because `SQRT2` is a static property of `Math`, you always use it as `Math.SQRT2`, rather than as a property of a `Math` object you created.

## tan

Returns the tangent of a number.

Method of | `Math`
Static
Implemented in | JavaScript 1.0, NES 2.0
ECMA version | ECMA-262

#### Syntax

    tan(x)

#### Parameters

    x
| A number

#### Description

The `tan` method returns a numeric value that represents the tangent of the angle. Because `tan` is a static method of `Math`, you always use it as `Math.tan()`, rather than as a method of a `Math` object you created.

#### Examples

The following function returns the tangent of the variable `x`:

    function getTan(x) {
       return Math.tan(x)
    }

#### See also

`Math.acos`, `Math.asin`, `Math.atan`, `Math.atan2`, `Math.cos`, `Math.sin`

Table of Contents | Previous | Next | Index

Last Updated: 05/28/99 11:59:53

Copyright (c) 1999 Netscape Communications Corporation