JS: Math (namespace)

By Xah Lee. Date: . Last updated: .

What is the Keyword “Math”

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

console.assert(globalThis["Math"] === Math);

Type

Type of Math is Object .

console.assert(typeof Math === "object");

Parent

Parent of Math is Object.prototype.

console.assert(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

(new in ECMAScript 2015)

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]

(new in ECMAScript 2015)

value is the string "Math".

Common Math Functions

Math.max(args)

Return the largest of the arguments.

console.log(Math.max(...[24, 185, 53]));
// 185
Math.min(args)

Return the smallest of the arguments. e.g. Math.min(...xArray)

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)

(new in ECMAScript 2015)

Return the nearest 32bits representation of x.

Math.trunc(x)

(new in ECMAScript 2015)

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)

(new in ECMAScript 2015)

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)

(new in ECMAScript 2015)

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)

(new in ECMAScript 2015)

Base 10 log of x

Math.log1p(x)

(new in ECMAScript 2015)

Natural log of x+1

Math.log2(x)

(new in ECMAScript 2015)

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)

(new in ECMAScript 2015)

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)

(new in ECMAScript 2015)

Hyperbolic sine. That is (e^x - e^(-x))/2

Math.cosh(x)

(new in ECMAScript 2015)

hyperbolic cosine. That is (e^x + e^(-x))/2

Math.tanh(x)

(new in ECMAScript 2015)

Hyperbolic tangent. That is Sinh[x]/Cosh[x]

Math.asinh(x)

(new in ECMAScript 2015)

Inverse hyperbolic sine.

Math.acosh(x)

(new in ECMAScript 2015)

Inverse hyperbolic cosine.

Math.atanh(x)

(new in ECMAScript 2015)

Inverse hyperbolic tangent.

Misc

Math.clz32(x)

(new in ECMAScript 2015)

Return the number of leading zero bits in the 32-bit binary representation of x.

Math.imul(a, b)

(new in ECMAScript 2015)

multiplies a and b as though they were 32 bit signed integers.

JavaScript. Number