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.

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.

`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.

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.

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

asin

Returns the arcsine (in radians) of a number.

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.

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

atan

Returns the arctangent (in radians) of a number.

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.

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

atan2

Returns the arctangent of the quotient of its arguments.

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.

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

ceil

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

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.

`Math.floor`

cos

Returns the cosine of a number.

`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.

`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.

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.

`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.

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

floor

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

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.

`Math.ceil`

LN10

The natural logarithm of 10, approximately 2.302.

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.

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.

`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.

`Math.exp`, `Math.pow`

LOG10E

The base 10 logarithm of E (approximately 0.434).

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).

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.

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.

`Math.min`

min

Returns the smaller of two numbers.

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.

`Math.max`

PI

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

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.

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).

`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.

Syntax

`random()`

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 1function getRandom() {   return Math.random()}`

round

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

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 20x=Math.round(20.49)`
`//Returns the value 21x=Math.round(20.5)`
`//Returns the value -20x=Math.round(-20.5)`
`//Returns the value -21x=Math.round(-20.51)`

sin

Returns the sine of a number.

`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.

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

sqrt

Returns the square root of a number.

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.

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.

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.

`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)}`

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