0
0
0
share
#javascript#ecmascript#es6#null
0 Komentar
Memahami Perbedaan null dan undefined di JavaScript
Sepintas null
dan undefined
terlihat sama, tapi sesungguhnya tidak sama sekali. Artikel ini akan membahas perbedaan dan kesamaan antara null
dan undefined
di JavaScript.
Apa itu null?
Ada dua hal tentang null
yang harus pembaca tahu:
null
artinya memiliki nilai kosong atau tidak ada.null
harus diganti (dengan nilai lain yang valid).
Berikut ini sebuah contoh. Kita memberikan nilai null
ke variabel a
:
let a = null;
console.log(a);
// null
Apa itu undefined?
Undefined secara umum berarti variabel tersebut sudah dideklarasi, tapi belum didefinisikan (belum diberi nilai).
let b;
console.log(b);
// undefined
Pembaca juga bisa secara eksplisit memberikan undefined pada sebuah variabel:
let c = undefined;
console.log(c);
// undefined
Terkahir, saat kita mencari properti objek JavaScript yang tidak ada, kita juga akan mendapat undefined:
var d = {};
console.log(d.fake);
// undefined
Kesamaan antara null dan undefined
Di JavaScript ada enam nilai yang bersifat false (falsy values). Baik null
maupun undefined
adalah salah dua dari keenam nilai tersebut. Berikut ini daftar lengkapnya:
- false
- 0 (zero)
- “” (string kosong)
- null
- undefined
- NaN (Not A Number)
Nilai lain selain keenam diatas akan bernilai true (truthy values).
Di JavaScript juga ada enam nilai primitif. Kedua tipe null
dan undefined
merupakan salah dua nilai primitif tersebut:
- Boolean
- Null
- Undefined
- Number
- String
- Symbol
Selain keenam nilai di atas, semua nilai di JavaScript adalah object (object, function, array, dsb.).
Yang menariknya, saat menggunakan typeof
untuk memeriksa null
, ia akan mengembalikan object
:
let a = null;
let b;
console.log(typeof a);
// object
console.log(typeof b);
// undefined
Hal ini sudah terjadi sejak awal pengembangan JavaScript sehingga dianggap sebagai sebuah peninggalan kesalahan implementasi di JavaScript.
null !=== undefined
Seperti yang bisa pembaca lihat, null
dan undefined
itu berbeda, namun memiliki beberapa kesamaan. Oleh karena itu, tidak aneh jika null
tidak sama dengan undefined
jika diperiksa dengan !==
:
null !== undefined
Yang menari, saat diperiksa loose equality-nya, mereka memiliki nilai yang sama.
null == undefined
Di JavaScript, tanda sama dengan dua kali akan memeriksa nilai kedua data dengan melakukan type coercion. Artinya JavaScript mengubah kedua nilai tersebut menjadi tipe data yang sama.
Perbedaan Praktis
Oke, jadi sekarang bagaimana perbedaan null
dan undefined
dikehidupan sehari-hari?
Perhatikan potongan kode berikut:
let logHi = (str = 'hi') => {
console.log(str);
}
Kode di atas membuat sebuah fungsi bernama logHi
. Fungsi ini meminta satu parameter dan mengatur nilai default-nya menjadi hi
jika tidak disediakan.
Berikut ini hasil saat fungsi di panggil:
logHi();
// hi
logHi('bye');
// bye
Saat mengirimkan undefined
kita mendapat nilai default parameternya sedangkan saat mengirimkan null
kita mencetak nilai null tersebut.
logHi(undefined);
// hi
logHi(null);
// null
Kesimpulan
null
merupakan sebuah assigned value sama seperti255
,23.5
,false
, atau"halo"
yang artinya tidak ada.undefined
maksudnya sebuah variabel sudah dideklarasi tapi belum diisi.null
danundefined
bersifat falsy (bernilai false).null
danundefined
keduanya smaa-sama tipe data primitif tapi sebuah error menyatakan bahwatypeof null
bernilai object.null !== undefined
tapinull == undefined
.
Diterjemahkan dari JavaScript — Null vs. Undefined karya Brandon Morelli
0
0
0
share