--- title: Operador Exponencial slug: Web/JavaScript/Reference/Operators/Exponentiation tags: - JavaScript - Operador Exponencial translation_of: Web/JavaScript/Reference/Operators/Exponentiation original_slug: Web/JavaScript/Reference/Operators/Operador_Exponencial ---
{{jsSidebar("Operators")}}

Sumário

O operador de exponenciação (**) retorna o resultado de elevar o primeiro operando à potência do segundo operando. É equivalente ao método Math.pow, exceto que também aceita números do tipo BigInt como operandos.

{{EmbedInteractiveExample("pages/js/expressions-exponentiation.html")}}

Sintaxe

    x ** y;

Descrição

O operador de exponenciação é associativo à direita: a ** b ** c é igual a a ** (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 operador XOR lógico bit a bit.

Exemplos

Exponenciação básica

    2 ** 3   // 8
    3 ** 2   // 9
    3 ** 2.5 // 15.588457268119896
    10 ** -1 // 0.1
    NaN ** 2 // NaN

Associatividade

    2 ** 3 ** 2   // 512
    2 ** (3 ** 2) // 512
    (2 ** 3) ** 2 // 64

Uso com operadores unários

Para inverter o sinal do resultado de uma expressão de exponenciação:

    -(2 ** 2) // -4

Para forçar a base de uma expressão de exponenciação a ser um número negativo:

    (-2) ** 2 // 4

Compatibilidade com navegadores

{{Compat}}

Veja também