Kodealgo

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:

NilaiKeterangan
'hello'String berisi termasuk 'hello', "hello", maupun hello
1Angka positif maupun negatif selain 0 dan -0 entah bilangan bulat atau pecahan
1nBigInt selain 0n
trueBoolean true
{}Objek berisi maupun tidak
[]Array berisi maupun tidak
InfinityNilai Infinity
-InfinityNilai -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:

NilaiKeterangan
''String kosong ("", '', ``)
0Angka 0 termasuk 0.0 dan 0x0, negatif maupun positif
0nBigInt 0
falseBoolean false
nullNilai null
undefinedNilai undefined
NaNNilai 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.