Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
Operador Exponencial
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since março de 2017.
Sumário
Ooperador de exponenciação (**) retorna o resultado de elevar o primeiro operando à potência dosegundo operando. É equivalente ao métodoMath.pow, exceto que também aceita números do tipo BigIntcomo operandos.
In this article
Experimente
console.log(3 ** 4);// Expected output: 81console.log(10 ** -2);// Expected output: 0.01console.log(2 ** (3 ** 2));// Expected output: 512console.log((2 ** 3) ** 2);// Expected output: 64Sintaxe
x ** y;Descrição
O operador de exponenciação é associativo à direita:a ** b ** c é igual aa ** (b ** c).
Na maioria das linguagens, como PHP, Python e outras que têm um operador de exponenciação(**),o operador de exponenciação é definido para ter uma precedência maior do que os operadores unários,como o unário+ e unário-, mas há algumas exceções.Por exemplo, no Bash, o operador** é definido para ter uma precedência menor do que os operadores unários.
Em JavaScript, é impossível escrever uma expressão de exponenciação ambígua.Ou seja, você não pode colocar um operador unário (+ / - / ~ /! / delete / void / typeof)imediatamente antes do número base; fazer isso causará um SyntaxError.
-2 ** 2; // // 4 no Bash, -4 em outros idiomas. // Isso é inválido em JavaScript, pois a operação é ambígua. -(2 ** 2); // -4 em JavaScript e a intenção do autor não é ambígua.Observe que algumas linguagens de programação usam o símbolo circunflexo^ para exponenciação,mas o JavaScript usa esse símbolo para o operadorXOR lógico bit a bit.
Exemplos
>Exponenciação básica
2 ** 3; // 83 ** 2; // 93 ** 2.5; // 15.58845726811989610 ** -1; // 0.1NaN ** 2; // NaNAssociatividade
2 ** 3 ** 2; // 5122 ** (3 ** 2); // 512(2 ** 3) ** 2; // 64Uso com operadores unários
Para inverter o sinal do resultado de uma expressão de exponenciação:
-(2 ** 2); // -4Para forçar a base de uma expressão de exponenciação a ser um número negativo:
(-2) ** 2; // 4