Javascript 使用JSON.parse克隆JS数组后&;JSON.stringify,为什么使用数组';s";“未定义”;值转换为“;空“;?
上述代码的输出将是Javascript 使用JSON.parse克隆JS数组后&;JSON.stringify,为什么使用数组';s";“未定义”;值转换为“;空“;?,javascript,arrays,clone,Javascript,Arrays,Clone,上述代码的输出将是 var arr1 = [1, 2, 3, undefined, 4, 5]; var arr2 = JSON.parse(JSON.stringify(arr1)); console.log(arr2); 为什么它将它的第四个值从“undefined”转换为“null”?因为undefined是一种Javascript类型。JSON中没有未定义的 根据: JSON可以表示四种基本类型(字符串、数字、布尔值和null)和两种结构化类型(对象和数组) ECMA-404(不是开玩
var arr1 = [1, 2, 3, undefined, 4, 5];
var arr2 = JSON.parse(JSON.stringify(arr1));
console.log(arr2);
为什么它将它的第四个值从“undefined”转换为“null”?因为
undefined
是一种Javascript类型。JSON中没有未定义的
根据:
JSON可以表示四种基本类型(字符串、数字、布尔值和null)和两种结构化类型(对象和数组)
ECMA-404(不是开玩笑,标准的)不知道
undefined
。undefined不是有效的json,因此json.parse将其转换为null。然后当转换回来时,因为null是有效的JS,所以它保留null
[1, 2, 3, null, 4, 5]