Our volunteers haven't translated this article into عربي yet. Join us and help get the job done!
Math
is a built-in object that has properties and methods for mathematical constants and functions. Not a function object.
Description
Unlike the other global objects, Math
is not a constructor. 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.
Properties
Math.E
- Euler's constant and the base of natural logarithms, approximately 2.718.
Math.LN2
- Natural logarithm of 2, approximately 0.693.
Math.LN10
- Natural logarithm of 10, approximately 2.303.
Math.LOG2E
- Base 2 logarithm of E, approximately 1.443.
Math.LOG10E
- Base 10 logarithm of E, approximately 0.434.
Math.PI
- Ratio of the circumference of a circle to its diameter, approximately 3.14159.
Math.SQRT1_2
- Square root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707.
Math.SQRT2
- Square root of 2, approximately 1.414.
Methods
Note that the trigonometric functions (sin()
, cos()
, tan()
, asin()
, acos()
, atan()
, atan2()
) expect or return angles in radians. To convert radians to degrees, divide by (Math.PI / 180)
, and multiply by this to convert the other way.
Note that a lot of the math functions have a precision that's implementation-dependent. This means that different browsers can give a different result, and even the same JS engine on a different OS or architecture can give different results.
Math.abs(x)
- Returns the absolute value of a number.
Math.acos(x)
- Returns the arccosine of a number.
Math.acosh(x)
- Returns the hyperbolic arccosine of a number.
Math.asin(x)
- Returns the arcsine of a number.
Math.asinh(x)
- Returns the hyperbolic arcsine of a number.
Math.atan(x)
- Returns the arctangent of a number.
Math.atanh(x)
- Returns the hyperbolic arctangent of a number.
Math.atan2(y, x)
- Returns the arctangent of the quotient of its arguments.
Math.cbrt(x)
- Returns the cube root of a number.
Math.ceil(x)
- Returns the smallest integer greater than or equal to a number.
Math.clz32(x)
- Returns the number of leading zeroes of a 32-bit integer.
Math.cos(x)
- Returns the cosine of a number.
Math.cosh(x)
- Returns the hyperbolic cosine of a number.
Math.exp(x)
- Returns Ex, where x is the argument, and E is Euler's constant (2.718…), the base of the natural logarithm.
Math.expm1(x)
- Returns subtracting 1 from
exp(x)
. Math.floor(x)
- Returns the largest integer less than or equal to a number.
Math.fround(x)
- Returns the nearest single precision float representation of a number.
Math.hypot([x[, y[, …]]])
- Returns the square root of the sum of squares of its arguments.
Math.imul(x, y)
- Returns the result of a 32-bit integer multiplication.
Math.log(x)
- Returns the natural logarithm (loge, also ln) of a number.
Math.log1p(x)
- Returns the natural logarithm (loge, also ln) of
1 + x
for a number x. Math.log10(x)
- Returns the base 10 logarithm of a number.
Math.log2(x)
- Returns the base 2 logarithm of a number.
Math.max([x[, y[, …]]])
- Returns the largest of zero or more numbers.
Math.min([x[, y[, …]]])
- Returns the smallest of zero or more numbers.
Math.pow(x, y)
- Returns base to the exponent power, that is,
baseexponent
. Math.random()
- Returns a pseudo-random number between 0 and 1.
Math.round(x)
- Returns the value of a number rounded to the nearest integer.
Math.sign(x)
- Returns the sign of the x, indicating whether x is positive, negative or zero.
Math.sin(x)
- Returns the sine of a number.
Math.sinh(x)
- Returns the hyperbolic sine of a number.
Math.sqrt(x)
- Returns the positive square root of a number.
Math.tan(x)
- Returns the tangent of a number.
Math.tanh(x)
- Returns the hyperbolic tangent of a number.
Math.toSource()
- Returns the string
"Math"
. Math.trunc(x)
- Returns the integral part of the number x, removing any fractional digits.
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Initial definition. Implemented in JavaScript 1.1. |
ECMAScript 5.1 (ECMA-262) The definition of 'Math' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Math' in that specification. |
Standard | New methods log10() , log2() , log1p() , expm1() , cosh() , sinh() , tanh() , acosh() , asinh() , atanh() , hypot() , trunc() , sign() , imul() , fround() , cbrt() and clz32() added. |
ECMAScript 2017 Draft (ECMA-262) The definition of 'Math' in that specification. |
Draft |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |