Depois de clonar o array JS usando JSON.parse & JSON.stringify, por que o valor “indefinido” do array é convertido em “nulo”? [duplicado]

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

A saída do código acima será....

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

Por que ele converte seu quarto valor de "indefinido" para "nulo"?

Respostas

2 Iwrestledabearonce. Aug 17 2020 at 20:24

Porque undefinedé um tipo de Javascript. Não há undefinedem JSON.

De acordo com a especificação :

JSON pode representar quatro tipos primitivos (strings, números, booleanos e null) e dois tipos estruturados (objetos e arrays).