Pada tutorial ini, Anda akan mempelajari tentang objek Boolean pada JavaScript dan perbedaan antara objek Boolean dan tipe primitif boolean.
Tipe primitif boolean pada JavaScript
JavaScript menyediakan tipe primitif boolean yang memiliki dua nilai, yaitu true dan false. Contoh berikut mendeklarasikan dua variabel yang menyimpan nilai boolean false dan true:
let isPending = false;
let isDone = true;
Ketika Anda menggunakan operator typeof
pada variabel yang menyimpan nilai boolean primitif, Anda mendapatkan hasil boolean seperti contoh berikut:
console.log(typeof(isPending)); // boolean
console.log(typeof(isDone)); // boolean
Objek Boolean pada JavaScript
Selain tipe primitif boolean, JavaScript juga menyediakan fungsi global Boolean()
dengan huruf B besar, untuk mengubah nilai dari tipe lain menjadi boolean.
Contoh berikut menunjukkan cara menggunakan fungsi Boolean()
untuk mengonversi string menjadi nilai boolean. Karena string tersebut tidak kosong, fungsi ini mengembalikan true.
let a = Boolean('Hi');
console.log(a); // true
console.log(typeof(a)); // boolean
Objek Boolean juga merupakan objek pembungkus dari tipe boolean primitif. Artinya, ketika Anda meneruskan true atau false ke konstruktor Boolean, itu akan membuat objek Boolean. Contohnya:
let b = new Boolean(false);
Untuk mendapatkan nilai primitif kembali, Anda dapat menggunakan metode valueOf()
objek Boolean sebagai berikut:
console.log(b.valueOf()); // false
Namun, jika Anda menggunakan metode toString()
dari objek Boolean, Anda akan mendapatkan nilai string “true” atau “false”. Sebagai contoh:
console.log(b.toString()); // "false"
boolean vs. Boolean pada JavaScript
Perhatikan contoh berikut:
let completed = true;
let active = new Boolean(false);
Pertama, active adalah objek sehingga Anda dapat menambahkan properti kepadanya:
active.primitiveValue = active.valueOf();
console.log(active.primitiveValue); // false
Namun, Anda tidak dapat melakukannya dengan variabel boolean primitif seperti variabel completed:
completed.name = 'primitive';
console.log(completed.name); // undefined
Kedua, typeof
dari objek Boolean mengembalikan object, sementara typeof
dari nilai boolean primitif mengembalikan boolean.
console.log(typeof completed); // boolean
console.log(typeof active); // object
Ketiga, ketika menggunakan operator instanceof
pada objek Boolean, itu mengembalikan true. Namun, itu mengembalikan false jika Anda menggunakan operator instanceof
pada nilai boolean.
console.log(completed instanceof Boolean); // false
console.log(active instanceof Boolean); // true
Disarankan untuk tidak menggunakan objek Boolean karena dapat menyebabkan kebingungan, terutama ketika digunakan dalam ekspresi. Sebagai contoh:
let falseObj = new Boolean(false);
if (falseObj) {
console.log('weird part of the Boolean object');
}
Bagaimana skrip ini berfungsi
- Pertama, buat falseObj sebagai objek Boolean pembungkus untuk nilai false.
- Kedua, gunakan falseObj dalam pernyataan
if
. Karena falseObj adalah objek, dan mesin JavaScript memaksa nilai boolean-nya menjadi true, maka pernyataan di dalam blokif
dieksekusi.
Tabel berikut merangkum perbedaan antara JavaScript boolean dan Boolean:
Operator | boolean | Boolean |
---|---|---|
typeof | boolean | object |
instanceof Boolean | false | true |
Disarankan untuk menggunakan fungsi Boolean()
untuk mengonversi nilai dari tipe yang berbeda menjadi tipe Boolean, tetapi sebaiknya jangan menggunakan Boolean sebagai objek pembungkus untuk nilai boolean primitif.
Dalam tutorial ini, Anda telah mempelajari tentang objek Boolean pada JavaScript dan perbedaannya dengan tipe primitif boolean.