JavaScript fornece uma ampla gama de funções para uso rápido e simples de expressões matemáticas. Uma das funções mais utilizadas é Math.pow(). Ele permite que você calcule a potência de um número.
A Math.pow() função aceita dois argumentos obrigatórios. O primeiro parâmetro é uma base - o número para o qual você precisa que o poder seja calculado. O segundo é um número que especifica o expoente. Por exemplo, se você chamar Math.pow (4, 3), a função retornará o resultado da computação 4*4*4 que é 64.
Observe que esta função é estática. É por isso que você não deve tentar criar um objeto de Math para chamá-lo (a propósito Math , não tem um construtor). A maneira correta de usar a função é diretamente chamando Math.pow (base, exponent) conforme mostrado no exemplo abaixo .
console.log(Math.pow(3, 3));A função funciona perfeitamente bem com números positivos e negativos como base. Ele também pode aceitar números com ponto flutuante, números escritos em uma forma científica (exponencial) ou até mesmo strings numéricas.
A Math.pow() função pode reconhecer números representados em um sistema hexadecimal, mas o resultado retornado seria escrito em decimal. Todos esses casos são ilustrados no exemplo a seguir.
console.log(Math.pow(2.5, 2)); console.log(Math.pow('-1.5', '3')); console.log(Math.pow(2e21, 2)); console.log(Math.pow(0x1b, 1/3));Tenha em mente que tomar 0 como um expoente sempre retornará 1 em um resultado. Passar valores não numéricos para esta função levará ao NaN retorno como resultado.
Você pode usar esta função para calcular raízes quadradas e outros radicais passando um número fracionário como argumento para o expoente. Para entender como escolher o expoente correto para calcular certas raízes, você precisa se aprofundar um pouco na matemática.
Qualquer número fracionário consiste em um numerador (que está acima da linha) e um denominador (o número abaixo da linha). Ao usar frações como expoentes, apenas observe que o numerador corresponde a uma potência e um denominador corresponde a uma raiz.
Você pode fazer seu programa calcular a raiz quadrada simplesmente chamando Math.pow(4, 0.5), Math.pow(4, 1/2) ou Math.sqrt(4)- calculando a raiz quadrada. Esses dois formatos levarão ao mesmo resultado.
console.log(Math.pow(4, 0.5)); console.log(Math.pow(4, 1/2)); console.log(Math.sqrt(4));Tenha em mente que, de acordo com uma lei matemática, ao calcular uma raiz par, a base não pode ser negativa. Portanto, se você tentar chamar a Math.pow() função com o primeiro parâmetro menor que zero e o segundo argumento representado por um número fracionário, NaN será retornado como resultado.
console.log(Math.pow(-16, 1/2)); console.log(Math.pow(-16, 1/4));Embora a Matemática permita calcular raízes ímpares de números negativos, a Math.pow() função não é capaz disso. Por exemplo, o resultado da execução Math.pow (-27, 1/3) será NaN, embora após o cálculo manual você obterá -3.
Existem duas maneiras de resolver esse problema. Em primeiro lugar, você pode usar uma função Math.cbrt() interna para cálculo rápido de uma raiz cúbica.
A segunda maneira é um pouco mais complicada, mas também mais geral. Isso é criar sua própria função. O uso de um operador ternário pode ser muito útil para este propósito.
Para calcular a raiz cúbica de um número, você pode fazer uma função aceitando apenas um parâmetro - a base. Em seguida, verifique se é positivo ou negativo. Se o número for maior que zero ou igual a ele, apenas retorne o resultado do Math.pow(), caso contrário - chame a mesma função mas com um argumento oposto e depois multiplique o resultado por -1.
function cube_root(x) { return x >= 0 ? Math.pow(x, 1/3): - Math.pow(-x,1/3); } console.log(cube_root(-27));Você pode tornar a função mais universal passando dois argumentos em vez de um e verificando-os internamente.
Em Matemática, o expoente também pode ter um valor negativo. Nesse caso, mostra quantas vezes você precisa dividir 1 pelo número especificado. Por exemplo, calcular 4-2 é o mesmo que 1/42. A Math.pow() função também é capaz de realizar tais cálculos. Assim, para este exemplo, ele retornará 0,0625 como resultado.
console.log(Math.pow(4, -2));Além disso, Math.pow() pode lidar facilmente com expoentes fracionários negativos. Por exemplo, se você tomar -1/2 como expoente e 16 como base para esta função, ela retornará o resultado da divisão 1 por uma raiz quadrada de 16 que é 0,25.
console.log(Math.pow(16, -1/2));Além disso, pode haver algumas situações em que a função retorna um resultado bastante confuso. Por exemplo, se você tentar calcular 10 a uma potência de menos cinco, em vez do esperado 0,00001, a Math.pow() função retornará um número estranho 0,000009999999999999999.
A razão para isso é a maneira como o JavaScript armazena números (usando o padrão IEE755). É por isso que, em alguns casos, você pode querer usar funções para arredondamento adicionalmente.
console.log(Math.pow(10, -5));Operador de exponenciação ES7
Um dos recursos menores introduzidos no EcmaScript2017(ES7) é o operador de exponenciação.
O operador de exponenciação (**) é equivalente Math.pow() e retorna o resultado da elevação do primeiro operando à potência do segundo operando. A principal diferença - ele também aceita BigInts como operandos.
console.log(Math.pow(Math.pow(2, 3), 2)); console.log((2 3) 2);Conclusão
A Math.pow() função é uma ferramenta muito poderosa para calcular a potência do número. Ele pode trabalhar com expoentes positivos, negativos e fracionários, o que o torna muito flexível. No entanto, ele não é capaz de calcular raízes de números negativos, portanto, talvez seja necessário criar sua própria função para esse fim ou usar a Math.cbrt() função interna para calcular uma raiz cúbica.