Operador de exponenciación de JavaScript

Resumen: en este tutorial, aprenderás a usar el operador de exponenciación de JavaScript (**
) para elevar un número a la potencia de un exponente.
Introducción al operador de exponenciación de JavaScript
Para elevar un número a la potencia de un exponente, a menudo se usa el método estático Math.pow() con la siguiente sintaxis:
Math.pow(base, exponent)
Por ejemplo:
let result = Math.pow(2,2);
console.log(result); // 4
result = Math.pow(2,3);
console.log(result); // 8
ECMAScript 2016 proporcionó una alternativa para obtener una base para la potencia del exponente mediante el uso del operador de exponenciación (**
) con la siguiente sintaxis:
x**n
El operador **
eleva x
a la potencia de un exponente n
.
Ten en cuenta que algunos lenguajes usan el símbolo de intercalación ^
para la exponenciación. Sin embargo, JavaScript ya usa ese símbolo para el operador XOR lógico bit
a bit
.
El siguiente ejemplo ilustra cómo usar el operador de exponenciación (**
):
let result = 2 ** 2;
console.log(result); // 4
result = 2 ** 3;
console.log(result); // 8
Math.pow() acepta un valor y lo convierte en un valor del tipo de número para el cálculo. De manera similar, el operador **
acepta valores del tipo número. Además, el operador **
acepta un valor del tipo bigint. Por ejemplo:
let result = 2n ** 3n;
console.log(result); // 8n
Además, puedes usar el operador de exponenciación (**
) en la notación infija. Por ejemplo:
let x = 2;
x **= 4;
console.log(x); // 16
JavaScript no permite poner un operador unario inmediatamente antes del número base. Si intentas hacerlo, obtendrás un SyntaxError
.
El siguiente ejemplo provoca un error de sintaxis:
let result = -2**3;
Error:
Uncaught SyntaxError: Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence
Para arreglar esto, usa paréntesis como este:
let result = (-2)**3;
console.log(result); // -8
Resumen
- El operador de exponenciación
**
eleva un número a la potencia de un exponente. - El operador de exponenciación
**
acepta valores del tipo número o bigint.