Talvez você já tenha se deparado com a necessidade de utilizar o operador exponencial no javascript.
Math.pow(2,2) // 2 * 2 = 4
Pra mim esta forma de utilização sempre foi muito estranha, mas aceitável, uma vez que você entende os operadores matemáticos do javascript. É um alívio saber que o javascript está em constante desenvolvimento. O ECMAScript que é a versão mais recente do JS, teve uma atualização na forma de utilização de exponencial, mais precisamente o ECMAScript 7, ES7. A nova forma envolve a utilização de dois sinais de multiplicação.
const exponencial = 2 ** 2;
Esta forma é muito mais intuitiva e fácil de usar. Há alguns dias eu ouvia o criador do Javascript Brendan Eich falar em uma conferência de JS que ele estava desenvolvendo o ES7 e copiando a forma como algumas das linguagens operavam, mais especificamente o Pearl. Para a minha surpresa eu descobri que os operadores exponenciais em outras linguagens também trabalham assim, não somente no Pearl.
// Python
a ** b
// Ruby
a ** b
// Pearl
a ** b
// F#
a ** b
Esta forma de implementar novas funcionalidades de forma parecida com outras linguagens realmente me agrada. Desta forma a curva de aprendizado para qualquer outra linguagem fica muito mais fácil para qualquer pessoa que deseje iniciar no mundo JS.
Operador de atribuição
O operador de atribuição é utilizado para realizar uma operação matemática ao valor de uma variável e um novo valor.
var valor = 5;
valor += 10; // 15
A variável recebe o valor dela mesma e realiza a operação matemática à que o sinal antes do = se refere. Neste caso é uma soma.
O novo operador exponencial também funciona da mesma forma, basta utilizar o novo sinal para que a mágica aconteça.
var valor = 5;
valor **= 2; // 25
Base negativa
Existe no em tanto uma armadilha nesta nova forma de utilizar o exponencial. Bases negativas não são tratadas automaticamente.
// Erro de sintaxe
const errado = -2 ** 4;
// Sintaxe correta
const correto = (-2) ** 4;
Para utilizar a base negativa será preciso que você envolva o valor negativo com parênteses. Coisa que com a versão antiga não era preciso.
// Não apresenta erro
Math.pow(-2,2);
Resumo
Trabalhar com exponencial ficou muito mais intuitivo. Não esqueça do truque com valores negativos. Javascript está evoluindo e a comunidade só cresce à cada dia, não será novidade se “novas” formas de utilizar operadores matemáticos sejam parecidas com outras linguagens. Fique antenado para novos posts.
Até mais!