---
title: رياضيات
slug: Web/JavaScript/Reference/Global_Objects/Math
translation_of: Web/JavaScript/Reference/Global_Objects/Math
---
{{JSRef}}
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
- {{jsxref("Math.E")}}
- Euler's constant and the base of natural logarithms, approximately 2.718.
- {{jsxref("Math.LN2")}}
- Natural logarithm of 2, approximately 0.693.
- {{jsxref("Math.LN10")}}
- Natural logarithm of 10, approximately 2.303.
- {{jsxref("Math.LOG2E")}}
- Base 2 logarithm of E, approximately 1.443.
- {{jsxref("Math.LOG10E")}}
- Base 10 logarithm of E, approximately 0.434.
- {{jsxref("Math.PI")}}
- Ratio of the circumference of a circle to its diameter, approximately 3.14159.
- {{jsxref("Math.SQRT1_2")}}
- Square root of 1/2; equivalently, 1 over the square root of 2, approximately 0.707.
- {{jsxref("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 many 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.
- {{jsxref("Global_Objects/Math/abs", "Math.abs(x)")}}
- Returns the absolute value of a number.
- {{jsxref("Global_Objects/Math/acos", "Math.acos(x)")}}
- Returns the arccosine of a number.
- {{jsxref("Global_Objects/Math/acosh", "Math.acosh(x)")}}
- Returns the hyperbolic arccosine of a number.
- {{jsxref("Global_Objects/Math/asin", "Math.asin(x)")}}
- Returns the arcsine of a number.
- {{jsxref("Global_Objects/Math/asinh", "Math.asinh(x)")}}
- Returns the hyperbolic arcsine of a number.
- {{jsxref("Global_Objects/Math/atan", "Math.atan(x)")}}
- Returns the arctangent of a number.
- {{jsxref("Global_Objects/Math/atanh", "Math.atanh(x)")}}
- Returns the hyperbolic arctangent of a number.
- {{jsxref("Global_Objects/Math/atan2", "Math.atan2(y, x)")}}
- Returns the arctangent of the quotient of its arguments.
- {{jsxref("Global_Objects/Math/cbrt", "Math.cbrt(x)")}}
- Returns the cube root of a number.
- {{jsxref("Global_Objects/Math/ceil", "Math.ceil(x)")}}
- Returns the smallest integer greater than or equal to a number.
- {{jsxref("Global_Objects/Math/clz32", "Math.clz32(x)")}}
- Returns the number of leading zeroes of a 32-bit integer.
- {{jsxref("Global_Objects/Math/cos", "Math.cos(x)")}}
- Returns the cosine of a number.
- {{jsxref("Global_Objects/Math/cosh", "Math.cosh(x)")}}
- Returns the hyperbolic cosine of a number.
- {{jsxref("Global_Objects/Math/exp", "Math.exp(x)")}}
- Returns Ex, where x is the argument, and E is Euler's constant (2.718…), the base of the natural logarithm.
- {{jsxref("Global_Objects/Math/expm1", "Math.expm1(x)")}}
- Returns subtracting 1 from
exp(x)
.
- {{jsxref("Global_Objects/Math/floor", "Math.floor(x)")}}
- Returns the largest integer less than or equal to a number.
- {{jsxref("Global_Objects/Math/fround", "Math.fround(x)")}}
- Returns the nearest single precision float representation of a number.
- {{jsxref("Global_Objects/Math/hypot", "Math.hypot([x[, y[, …]]])")}}
- Returns the square root of the sum of squares of its arguments.
- {{jsxref("Global_Objects/Math/imul", "Math.imul(x, y)")}}
- Returns the result of a 32-bit integer multiplication.
- {{jsxref("Global_Objects/Math/log", "Math.log(x)")}}
- Returns the natural logarithm (loge, also ln) of a number.
- {{jsxref("Global_Objects/Math/log1p", "Math.log1p(x)")}}
- Returns the natural logarithm (loge, also ln) of
1 + x
for a number x.
- {{jsxref("Global_Objects/Math/log10", "Math.log10(x)")}}
- Returns the base 10 logarithm of a number.
- {{jsxref("Global_Objects/Math/log2", "Math.log2(x)")}}
- Returns the base 2 logarithm of a number.
- {{jsxref("Global_Objects/Math/max", "Math.max([x[, y[, …]]])")}}
- Returns the largest of zero or more numbers.
- {{jsxref("Global_Objects/Math/min", "Math.min([x[, y[, …]]])")}}
- Returns the smallest of zero or more numbers.
- {{jsxref("Global_Objects/Math/pow", "Math.pow(x, y)")}}
- Returns base to the exponent power, that is,
baseexponent
.
- {{jsxref("Global_Objects/Math/random", "Math.random()")}}
- Returns a pseudo-random number between 0 and 1.
- {{jsxref("Global_Objects/Math/round", "Math.round(x)")}}
- Returns the value of a number rounded to the nearest integer.
- {{jsxref("Global_Objects/Math/sign", "Math.sign(x)")}}
- Returns the sign of the x, indicating whether x is positive, negative or zero.
- {{jsxref("Global_Objects/Math/sin", "Math.sin(x)")}}
- Returns the sine of a number.
- {{jsxref("Global_Objects/Math/sinh", "Math.sinh(x)")}}
- Returns the hyperbolic sine of a number.
- {{jsxref("Global_Objects/Math/sqrt", "Math.sqrt(x)")}}
- Returns the positive square root of a number.
- {{jsxref("Global_Objects/Math/tan", "Math.tan(x)")}}
- Returns the tangent of a number.
- {{jsxref("Global_Objects/Math/tanh", "Math.tanh(x)")}}
- Returns the hyperbolic tangent of a number.
Math.toSource()
{{non-standard_inline}}
- Returns the string
"Math"
.
- {{jsxref("Global_Objects/Math/trunc", "Math.trunc(x)")}}
- Returns the integer part of the number x, removing any fractional digits.
Extending the Math
object
As with most of the built-in objects in JavaScript, the Math
object can be extended with custom properties and methods. To extend the Math
object, you do not use prototype
. Instead, you directly extend Math
:
Math.propName = propValue;
Math.methodName = methodRef;
For instance, the following example adds a method to the Math
object for calculating the greatest common divisor of a list of arguments.
/* Variadic function -- Returns the greatest common divisor of a list of arguments */
Math.gcd = function() {
if (arguments.length == 2) {
if (arguments[1] == 0)
return arguments[0];
else
return Math.gcd(arguments[1], arguments[0] % arguments[1]);
} else if (arguments.length > 2) {
var result = Math.gcd(arguments[0], arguments[1]);
for (var i = 2; i < arguments.length; i++)
result = Math.gcd(result, arguments[i]);
return result;
}
};
Try it:
console.log(Math.gcd(20, 30, 15, 70, 40)); // `5`
Specifications
Specification |
Status |
Comment |
{{SpecName('ES1')}} |
{{Spec2('ES1')}} |
Initial definition. Implemented in JavaScript 1.1. |
{{SpecName('ES5.1', '#sec-15.8', 'Math')}} |
{{Spec2('ES5.1')}} |
|
{{SpecName('ES6', '#sec-math-object', 'Math')}} |
{{Spec2('ES6')}} |
New methods {{jsxref("Math.log10()", "log10()")}}, {{jsxref("Math.log2()", "log2()")}}, {{jsxref("Math.log1p()", "log1p()")}}, {{jsxref("Math.expm1()", "expm1()")}}, {{jsxref("Math.cosh()", "cosh()")}}, {{jsxref("Math.sinh()", "sinh()")}}, {{jsxref("Math.tanh()", "tanh()")}}, {{jsxref("Math.acosh()", "acosh()")}}, {{jsxref("Math.asinh()", "asinh()")}}, {{jsxref("Math.atanh()", "atanh()")}}, {{jsxref("Math.hypot()", "hypot()")}}, {{jsxref("Math.trunc()", "trunc()")}}, {{jsxref("Math.sign()", "sign()")}}, {{jsxref("Math.imul()", "imul()")}}, {{jsxref("Math.fround()", "fround()")}}, {{jsxref("Math.cbrt()", "cbrt()")}} and {{jsxref("Math.clz32()", "clz32()")}} added. |
{{SpecName('ESDraft', '#sec-math-object', 'Math')}} |
{{Spec2('ESDraft')}} |
|
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("javascript.builtins.Math")}}
See also