JSON.parse 및 JSON.stringify를 사용하여 JS 배열을 복제 한 후 배열의 "정의되지 않은"값이 "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

undefinedJavascript 유형 이기 때문 입니다. undefinedJSON 에는 없습니다 .

사양 에 따르면 :

JSON은 네 가지 기본 유형 (문자열, 숫자, 부울 및 널)과 두 가지 구조화 된 유형 (객체 및 배열)을 나타낼 수 있습니다.