Lesson equality pada JavaScript akan membahas penggunaan double equal “==” atau triple equal “===” untuk membandingkan equality variable atau object lainnya.
var a = 1;
var b = True;
if(a==b){
console.log("equal..");
}else{
console.log("not equal..");
}
Double Equal atau ==
Jika type variable berbeda, double equal akan melakukan konversi untuk menyamakan type data . Jadi pada contoh diatas, type variable string dan int akan disamakan menjadi satu type, lalu dibandingkan isinya.
Jadi pada contoh diatas akan menghasilkan equal. Pada kasus tertentu, melakukan comparison dengan double equal dapat menimbulkan masalah.
Tripe equal atau ===
var a = 1;
var b = True;
if(a==b){
console.log("equal..");
}else{
console.log("not equal..");
}
Tidak akan dilakukan konversi type data. Jadi hal pertama yang dilakukan adalah JavaScript akan memeriksa type data:
- Jika tidak sama, hasilnya False.
- Jika sama, JavaScript akan membandingkan isinya. Jika berbeda maka False, jika sama maka True.
Maka pada contoh diatas hasilnya adalah not equal, karena 1 dan True berbeda type data.
Hal yang lain yang perlu diperhatikan adalah terjadi saat melakukan checking suatu variable exist atau tidak. Banyak programmer melakukan hal seperti berikut
//contoh exist
var x=1;
if(x){
console.log("Exist");
}else{
console.log("Not Exist");
}
//contoh not exist
var x;
if(x){
.....
}
Pada contoh diatas, if pertama, maka variable exist. Pada if kedua variable not exist. Sampai disini terlihat tidak ada masalah.
Perintah if(x) diatas, dilihat compiler sebagai if(x == true), masalah akan timbul pada skenario seperti ini.
var x = 0;
if(x){
....
}
Pada skenario diatas maka variable x not exist, padahal sebetulnya exist. Ini terjadi karena x akan diconvert menjadi boolean, dimana 0 adalah false.
Cara yang lebih tepat untuk memastikan sebuah variable ada atau tidak adalah dengan memeriksa type dari variable tersebut dengan perintah typeof.
var x = 0;
if(typeof(x) !== 'undefined'){
....
}
Kesimpulan
Jadi best practice untuk masalah equality dan comparison adalah menggunakan triple equal untuk memastikan JavaScript tidak melakukan conversi type data secara otomatis.
Dan selalu gunakan perintah typeof untuk memeriksa sebuah variable exist atau tidak, jangan menggunakan cara singkat if(x).
Tips JSHint Setting
Tips untuk melakukan setting pada JSHint agar memastikan kita menggunakan triple equal. Buat file dengan nama “.jshintrc” pada directory yang sama dengan project JavaScript Anda. Ketikan konfiguarsi setting berikut:
{
"eqeqeq": true
}
Setelah menambah file tersebut, jika JSHint tidak otomatis memberikan warning penggunaan tripe equal, coba restart visual studio code. Jika sudah berfungsi maka JSHint akan memberikan warning seperti berikut.

Untuk options yang lain dapat dilihat di https://jshint.com/docs/options/