JS: Math

By Xah Lee. Date: . Last updated: .

What is the Keyword “Math”

Math is the value of the property key "Math" of the Global Object .

globalThis["Math"] === Math

Type

Type of Math is Object .

typeof Math === "object"

Parent

Parent of Math is Object.prototype.

Reflect.getPrototypeOf(Math) === Object.prototype

Purpose

Purpose of Math object is as a namespace for math related functions and constants.

Properties

Constants

Math.PI
π. Value is ≈3.1415
Math.E
Constant e. The number Limit[(1+1/n)^n,{n,∞}] . Value is ≈2.7182
Math.LN10
(JS2015) natural log of 10. Value is ≈2.3025
Math.LN2
natural log of 2. Value is ≈0.6931
Math.LOG10E
base-10 log of e. Value is ≈0.4342
Math.LOG2E
base-2 log of e. Value is ≈1.4426
Math.SQRT1_2
1/(√2). Value is ≈0.7071
Math.SQRT2
√2. Value is ≈1.4142
Math [ Symbol.toStringTag ]
(JS2015) value is the string "Math".

Common Math Functions

Math.max(args)
Return the largest of the arguments. e.g. Math.max(...myArray)
Math.min(args)
Return the smallest of the arguments. e.g. Math.min(...myArray)
Math.random()
Return a real number between 0 to 1, including 0 but excluding 1. [see Random Integer Function 🚀]
Math.sign(x)
Return 1 if x is positive, -1 if negative, 0 if positive 0, -0 if negative 0. (JavaScript's 0 can are signed. -0 === 0 eval to true.)
Math.abs(x)
Absolute value.

Ceiling, Floor, Round

Math.ceil(x)
Return a integer that's equal or greater than x.
Math.floor(x)
Return a integer that's equal or less than x.
Math.round(x)
Return a number to the nearest integer. 0.5 rounds up to 1.
Math.fround(x)
(JS2015) Return the nearest 32bits representation of x.
Math.trunc(x)
(JS2015) Return the integral part of x.

Power and Roots

Math.pow(x, y)
x raised to the power of y. Same as x ** y.
Math.sqrt(x)
Square root.
Math.cbrt(x)
(JS2015) Cube root.

To compute nth root, use Math.pow(x, 1/n).

Exponential and Logarithm

Math.exp(x)
e raised to the power of x. Same as e ** x.
Math.expm1(x)
(JS2015) Same as e ** x -1. The result is computed in a way that is accurate even when the value of x is close 0.
console.log(Math.expm1(0.01));
// 0.010050167084168058

console.log(Math.pow(Math.E, 0.01) - 1);
// 0.010050167084167949
Math.log(x)
Natural log of x
Math.log10(x)
(JS2015) Base 10 log of x
Math.log1p(x)
(JS2015) Natural log of x+1
Math.log2(x)
(JS2015) Base 2 log of x

Trig

Math.sin(x)
Sine function.
Math.cos(x)
Cosine function.
Math.tan(x)
Tangent function.
Math.asin(x)
Inverse of sine. Domain is -1 to 1. Range is 0 to π.
Math.acos(x)
Inverse of cosine. Domain is -1 to 1. Range is 0 to π.
Math.atan(x)
Inverse of tangent. No restriction on domain. Range is -π/2 to π/2.
Math.atan2(y, x)
Return the arc tangent of the quotient y/x, where the signs of y and x are used to determine the quadrant of the result. Result is in range from −π to +π.
Math.hypot(x1, x2, etc)
(JS2015) Return the square root of (x1^2 + x2^2 + etc^2). This is useful to compute the length of a higher dimension vector in linear algebra.

All trig functions's argument are radians.

Hyperbolic Functions

Math.sinh(x)
(JS2015) Hyperbolic sine. That is (e^x - e^(-x))/2
Math.cosh(x)
(JS2015) hyperbolic cosine. That is (e^x + e^(-x))/2
Math.tanh(x)
(JS2015) Hyperbolic tangent. That is Sinh[x]/Cosh[x]
Math.asinh(x)
(JS2015) Inverse hyperbolic sine.
Math.acosh(x)
(JS2015) Inverse hyperbolic cosine.
Math.atanh(x)
(JS2015) Inverse hyperbolic tangent.

Misc

Math.clz32(x)
(JS2015) Return the number of leading zero bits in the 32-bit binary representation of x.
Math.imul(a, b)
(JS2015) multiplies a and b as though they were 32 bit signed integers.
BUY ΣJS JavaScript in Depth

JavaScript, Number