Acabo de descubrir la función ECMAScript 7 a**bcomo una alternativa para Math.pow(a,b)( Referencia de MDN ) y encontré una discusión en esa publicación , en la que aparentemente se comportan de manera diferente. Lo probé en Chrome 55 y puedo confirmar que los resultados son diferentes.
Math.pow(99,99) devoluciones 3.697296376497263e+197
mientras
99**99 devoluciones 3.697296376497268e+197
Entonces, registrar la diferencia Math.pow(99,99) - 99**99da como resultado -5.311379928167671e+182.
Hasta ahora se podría decir que es simplemente otra implementación, pero envolverla en una función se comporta diferente nuevamente:
function diff(x) {
return Math.pow(x,x) - x**x;
}
diff(99)devoluciones de llamada 0.
¿Por qué está pasando eso?
Como señaló xszaboj , esto se puede reducir a este problema:
var x = 99;
x**x - 99**99; // Returns -5.311379928167671e+182
`likethis`para que sea legible y también evitar el problema de negrita / cursiva