Saya baru saja menemukan fitur ECMAScript 7 a**bsebagai alternatif untuk Math.pow(a,b)( Referensi MDN ) dan menemukan diskusi di posting itu , di mana mereka tampaknya berperilaku berbeda. Saya telah mengujinya di Chrome 55 dan dapat mengonfirmasi bahwa hasilnya berbeda.
Math.pow(99,99) kembali 3.697296376497263e+197
sedangkan
99**99 kembali 3.697296376497268e+197
Jadi mencatat Math.pow(99,99) - 99**99hasil perbedaan -5.311379928167671e+182.
Sejauh ini dapat dikatakan, bahwa ini hanyalah implementasi lain, tetapi membungkusnya dalam sebuah fungsi berperilaku berbeda lagi:
function diff(x) {
return Math.pow(x,x) - x**x;
}
menelepon diff(99)kembali 0.
Mengapa itu terjadi?
Seperti yang ditunjukkan xszaboj , ini dapat dipersempit menjadi masalah ini:
var x = 99;
x**x - 99**99; // Returns -5.311379928167671e+182
`likethis`agar dapat dibaca dan juga menghindari masalah huruf tebal / miring