The Math.pow()
static method returns the value of a base raised to a power. That is
The Math.pow()
static method returns the value of a base raised to a power. That is
Math.pow(base, exponent)
A number representing base
taken to the power of exponent
. Returns NaN
in one of the following cases:
exponent
is NaN
.base
is NaN
and exponent
is not 0
.base
is Β±1 and exponent
is Β±Infinity
.base < 0
and exponent
is not an integer.Math.pow()
is equivalent to the **
operator, except Math.pow()
only accepts numbers.
Math.pow(NaN, 0)
(and the equivalent NaN ** 0
) is the only case where NaN
doesn't propagate through mathematical operations β it returns 1
despite the operand being NaN
. In addition, the behavior where base
is 1 and exponent
is non-finite (Β±Infinity or NaN
) is different from IEEE 754, which specifies that the result should be 1, whereas JavaScript returns NaN
to preserve backward compatibility with its original behavior.
Because pow()
is a static method of Math
, use it as Math.pow()
, rather than as a method of a Math
object you created (Math
is not a constructor).
// Simple cases Math.pow(7, 2); // 49 Math.pow(7, 3); // 343 Math.pow(2, 10); // 1024 // Fractional exponents Math.pow(4, 0.5); // 2 (square root of 4) Math.pow(8, 1 / 3); // 2 (cube root of 8) Math.pow(2, 0.5); // 1.4142135623730951 (square root of 2) Math.pow(2, 1 / 3); // 1.2599210498948732 (cube root of 2) // Signed exponents Math.pow(7, -2); // 0.02040816326530612 (1/49) Math.pow(8, -1 / 3); // 0.5 // Signed bases Math.pow(-7, 2); // 49 (squares are positive) Math.pow(-7, 3); // -343 (cubes can be negative) Math.pow(-7, 0.5); // NaN (negative numbers don't have a real square root) // Due to "even" and "odd" roots laying close to each other, // and limits in the floating number precision, // negative bases with fractional exponents always return NaN, // even when the mathematical result is real Math.pow(-7, 1 / 3); // NaN // Zero and infinity Math.pow(0, 0); // 1 (anything ** Β±0 is 1) Math.pow(Infinity, 0.1); // Infinity (positive exponent) Math.pow(Infinity, -1); // 0 (negative exponent) Math.pow(-Infinity, 1); // -Infinity (positive odd integer exponent) Math.pow(-Infinity, 1.5); // Infinity (positive exponent) Math.pow(-Infinity, -1); // -0 (negative odd integer exponent) Math.pow(-Infinity, -1.5); // 0 (negative exponent) Math.pow(0, 1); // 0 (positive exponent) Math.pow(0, -1); // Infinity (negative exponent) Math.pow(-0, 1); // -0 (positive odd integer exponent) Math.pow(-0, 1.5); // 0 (positive exponent) Math.pow(-0, -1); // -Infinity (negative odd integer exponent) Math.pow(-0, -1.5); // Infinity (negative exponent) Math.pow(0.9, Infinity); // 0 Math.pow(1, Infinity); // NaN Math.pow(1.1, Infinity); // Infinity Math.pow(0.9, -Infinity); // Infinity Math.pow(1, -Infinity); // NaN Math.pow(1.1, -Infinity); // 0 // NaN: only Math.pow(NaN, 0) does not result in NaN Math.pow(NaN, 0); // 1 Math.pow(NaN, 1); // NaN Math.pow(1, NaN); // NaN
Specification |
---|
ECMAScript Language Specification # sec-math.pow |
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | Deno | Node.js | ||
pow |
1 | 12 | 1 | 3 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1.0 | 0.10.0 |
Β© 2005β2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow