Operator Eksponensiasi JavaScript

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.
Share jika bermanfaat:
Abdan Zam Zam Ramadhan
Abdan Zam Zam Ramadhan

Seorang penggiat teknologi yang menfokuskan diri pada pengembangan aplikasi (web & android), DevOps, Data Tech, Natural Language Processing (NLP) dan ChatBot berbasis NLP. Sedang mendalami di Node.js dan ekosistemnya. Aktif sebagai konstributor library JS (open source) di NPM. Menulis berbagai artikel tips dan tutorial pemrograman di LampungDev.com.

Articles: 32