Setelah mengkloning array JS menggunakan JSON.parse & JSON.stringify, mengapa nilai "undefined" array diubah menjadi "null"? [duplikat]

Aug 17 2020
var arr1 = [1, 2, 3, undefined, 4, 5];
var arr2 = JSON.parse(JSON.stringify(arr1));
console.log(arr2);

Output dari kode diatas akan menjadi ....

[1, 2, 3, null, 4, 5]

Mengapa itu mengubah nilai keempatnya dari "undefined" menjadi "null"?

Jawaban

2 Iwrestledabearonce. Aug 17 2020 at 20:24

Karena undefinedmerupakan tipe Javascript. Tidak ada undefineddi JSON.

Menurut spesifikasi :

JSON dapat mewakili empat tipe primitif (string, angka, boolean, dan null) dan dua tipe terstruktur (objek dan array).