Mengenal Nilai Truthy dan Falsy JavaScript
Nilai truthy dan falsy di JavaScript penting untuk diketahui terutama saat menggunakan conditional statement seperti if
dan perulangan.
Mari kita gunakan contoh conditional statement untuk menemukan alasan mengapa kita perlu mengetahui nilai truthy dan falsy.
if ('') {
console.log('hello world');
}
Lihat kode di atas, jika di dalam kurung lengkung ( ... )
setelah kata kunci if
bernilai true
...
...maka kode yang ada di dalam kurung kurawal { ... }
akan dieksekusi, dalam hal ini console.log('hello world');
.
Nilai di dalam kurung lengkung harus boolean (true
atau false
), kalau bukan maka dikonversi ke boolean secara otomatis.
Contoh di atas, kita tidak memasukkan nilai boolean tapi string kosong.
Lantas, jika string kosong dikonversi ke nilai boolean apakah hasilnya true
atau false
?
Disinilah kita perlu mengetahui nilai truthy dan falsy.
String kosong yang dikonversi ke nilai boolean akan menjadi false
, oleh karena itu kode di dalam { ... }
contoh di atas tidak dieksekusi.
Konversi Nilai ke Boolean
Kita bisa memaksa atau mengkonversi nilai ke boolean secara manual menggunakan fungsi constructor Boolean()
atau !!
.
Anda tidak perlu mengkonversi secara manual ketika berada dalam konteks yang membutuhkan nilai boolean seperti conditional statement (seperti contoh di atas) atau perulangan.
JavaScript akan melakukannya secara otomatis.
Tujuan kita di sini agar bisa melihat nilai boolean-nya, meskipun bukan dalam konteks boolen, misalnya di console.log()
.
Contoh, tanpa konversi:
console.log(''); // ''
Kode di atas akan mengembalikan string kosong bukan boolean.
Tapi jika kita konversi, ini akan mengembalikan nilai boolean.
Contoh:
console.log(!!''); // false
// atau
console.log(Boolean('')); // false
Ingat, Anda tidak perlu mengkonversi secara manual ketika berada dalam konteks yang membutuhkan nilai boolean.
Mari kita pelajari nilai apa saja yang dianggap true
dan false
.
Truthy
Truthy atau nilai kebenaran adalah nilai yang dikonversi menjadi boolean true
saat ditemui dalam konteks yang membutuhkan nilai boolean.
Berikut daftar nilai yang jika dikonversi ke boolean akan menjadi true
:
Nilai | Keterangan |
---|---|
'hello' | String berisi termasuk 'hello' , "hello" , maupun hello |
1 | Angka positif maupun negatif selain 0 dan -0 entah bilangan bulat atau pecahan |
1n | BigInt selain 0n |
true | Boolean true |
{} | Objek berisi maupun tidak |
[] | Array berisi maupun tidak |
Infinity | Nilai Infinity |
-Infinity | Nilai -Infinity |
Mari buktikan, Anda dapat memeriksanya menggunakan console.log()
.
Pastikan dikonversi secara manual karena console.log()
bukan konteks yang membutuhkan nilai boolean, sehingga tidak akan dikonversi secara otomatis.
!!'hello'; // true
!!1; // true
!!1n; // true
!!true; // true
!!{}; // true
!![]; // true
!!Infinity; // true
!!-Infinity; // true
Falsy
Kebalikan dari truthy, falsy adalah nilai yang akan dikonversi menjadi false
saat ditemui dalam konteks boolean.
Berikut daftar nilai yang jika dikonversi ke boolean akan menjadi false
:
Nilai | Keterangan |
---|---|
'' | String kosong ("", '', ``) |
0 | Angka 0 termasuk 0.0 dan 0x0 , negatif maupun positif |
0n | BigInt 0 |
false | Boolean false |
null | Nilai null |
undefined | Nilai undefined |
NaN | Nilai NaN |
Mari kita buktikan.
!!''; // false
!!0; // false
!!0n; // false
!!false; // false
!!null; // false
!!undefined; // false
!!NaN; // false
Cara termudah untuk memahami atau menghafal nilai-nilai ini adalah...
...cukup pahami atau ketahui nilai falsy, selain dari itu berarti truthy.
Sebetulnya Anda tidak perlu menghafalnya, kalau Anda tidak yakin apakah sebuah nilai truthy atau falsy, lihat kembali artikel ini.
Lambat laun Anda akan terbiasa dan hafal dengan nilai-nilai tersebut.