Pada tutorial ini, Anda akan mempelajari cara menggunakan operator eksponensiasi JavaScript (**) untuk mengangkat suatu angka ke pangkat eksponen tertentu.
Pengantar tentang Operator Eksponensiasi JavaScript Untuk mengangkat suatu angka ke pangkat eksponen, biasanya Anda menggunakan metode statis Math.pow() dengan sintaks berikut:
Math.pow(base, eksponen)
Contoh:
let hasil = Math.pow(2, 2);
console.log(hasil); // 4
hasil = Math.pow(2, 3);
console.log(hasil); // 8
ECMAScript 2016 menyediakan cara alternatif untuk mengangkat suatu angka ke pangkat eksponen menggunakan operator eksponensiasi (**) dengan sintaks berikut:
x**n
Operator ** mengangkat angka x ke pangkat eksponen n.
Perhatikan bahwa beberapa bahasa menggunakan simbol caret (^) untuk eksponensiasi. Namun, JavaScript sudah menggunakan simbol tersebut untuk operator XOR bitwise.
Contoh berikut mengilustrasikan cara menggunakan operator eksponensiasi (**) tersebut:
let hasil = 2 ** 2;
console.log(hasil); // 4
hasil = 2 ** 3;
console.log(hasil); // 8
Math.pow() menerima nilai dan mengonversinya menjadi nilai bertipe number untuk perhitungan. Demikian pula, operator ** menerima nilai bertipe number. Selain itu, operator ** juga menerima nilai bertipe bigint. Contoh:
let hasil = 2n ** 3n;
console.log(hasil); // 8n
Selain itu, Anda dapat menggunakan operator eksponensiasi (**) dalam notasi infix. Contoh:
let x = 2;
x **= 4;
console.log(x); // 16
JavaScript tidak memperbolehkan Anda menempatkan operator unary tepat sebelum angka dasar. Jika Anda mencoba melakukannya, Anda akan mendapatkan SyntaxError.
Contoh berikut menyebabkan kesalahan sintaks:
let hasil = -2**3;
Error:
Uncaught SyntaxError: Unary operator used immediately before exponentiation expression. Parenthesis must be used to disambiguate operator precedence
Untuk mengatasi hal ini, gunakan tanda kurung seperti ini:
let hasil = (-2)**3;
console.log(hasil); // -8
Ringkasan
- Operator eksponensiasi ** mengangkat suatu angka ke pangkat eksponen.
- Operator eksponensiasi ** menerima nilai bertipe number atau bigint.
