Exponentiation in JavaScript

Exponentiation in JavaScript: A Beginner’s Guide

Exponentiation refers to a mathematical process of multiplying a number by itself. In JavaScript, you can perform it using the ** operator or Math.pow() method.

Introduction

Exponentiation refers to a mathematical process of multiplying a number by itself, raised to the power of another number.

If, for instance, we raise 2 to the power of 3, we calculate it as 2 * 2 * 2, which gives us the result of 8.

In JavaScript, you can use either the ** operator introduced in ES6 or the method Math.pow() when evaluating exponents.

Before starting, please keep in mind that this operator ^ is the Bitwise XOR Operator. Don't use it for exponentiation, as it is a common confusion.

Using the ** Operator

The ** operator is used to perform exponentiation in JavaScript. It takes two operands: the base and the exponent.

The base (the left-hand side) is the number that is being raised to a power, and the exponent (the right-hand side) is the power itself.

Have a look at the following example:

let result = 2 ** 3; // 8

In this example, 2 is the base and 3 is the exponent. The ** operator raises 2 to the power of 3, which is 8.

The Precedence of the ** Operator

Keep in mind, the ** operator has higher precedence than the multiplication and division operators.

This means that if you have an expression that includes both multiplication and exponentiation, the exponentiation will be evaluated first.

Here’s an example:

let result1 = 2 * 3 ** 2, // 18
	result2 = (2 * 3) ** 2; // 36

In this example, regarding result1, 3 is raised to the power of 2 first, resulting in 9. Then, the multiplication is performed, resulting in a final value of 18.

But if you want to precede the multiplication operator in the case of result2, you have to enclose the multiplication operation between ().

Another example, if you want to find the nth roots:

let result1 = 8 ** 1 / 3, // 2.6666666666666665
	result2 = 8 ** (1 / 3); // 2

💌 Enjoying this post? Subscribe to get more practical dev tips right in your inbox.

Using Math.pow() Method

In addition to the ** operator, JavaScript also provides the Math.pow() method for performing exponentiation.

Like the ** operator, this method takes two arguments: the base and the exponent.

Here’s an example of how to use Math.pow():

let result = Math.pow(2, 3); // 8

In this example, 2 is the base and 3 is the exponent. The Math.pow() method raises 2 to the power of 3, which is 8.

Math.pow() Method vs ** Operator

Actually, there is a slight difference between them regarding the BigInt type.

The Math.pow() method doesn’t support the BigInt type, however, the ** operator supports it. Take a look at the following example:

let result1 = 2n ** 4n, // 16n
  result2 = Math.pow(2n, 4n); // Uncaught TypeError: Cannot convert a BigInt value to a number
In JavaScript, the BigInt is created like 2n or BigInt(2)

Which One Should You Use?

As you saw, there are no big differences between Math.pow() and the ** operator.

However, if you work with BigInt values, go ahead with ** operator; other than this case, use whatever you want.

Keep in mind, if you choose the ** operator, just take care of the precedence.

Conclusion

Exponentiation is a fundamental mathematical operation. And, in JavaScript, exponentiation can be performed using the ** operator or the Math.pow() method.

In this article, we learned how to use both the ** operator and the Math.pow() method.

Then, we knew that there were no big differences between them, so it is up to you to use either of them.

Think about it

IIf you enjoyed this article, I’d truly appreciate it if you could share it—it really motivates me to keep creating more helpful content!

If you’re interested in exploring more, check out these articles.

Thanks for sticking with me until the end—I hope you found this article valuable and enjoyable!

Want more dev insights like this? Subscribe to get practical tips, tutorials, and tech deep dives delivered to your inbox. No spam, unsubscribe anytime.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top