Почему после клонирования массива JS с использованием JSON.parse и JSON.stringify значение «undefined» массива преобразуется в «null»? [дубликат]

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

Результатом приведенного выше кода будет ....

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

Почему он преобразует 4-е значение из «undefined» в «null»?

Ответы

2 Iwrestledabearonce. Aug 17 2020 at 20:24

Потому undefinedчто это тип Javascript. Нет undefinedв JSON.

Согласно спецификации :

JSON может представлять четыре примитивных типа (строки, числа, логические значения и null) и два структурированных типа (объекты и массивы).