javascript 神奇的array类型

猜测以下代码的输出

let test = {};

function func1(test) {
    test.obj = test.obj || [];
}

function func2(test) {
    test.obj['test'] = test.obj['test'] || {ok:true};
}

func1(test);
func2(test);
console.log("test1==", test); // { obj: [ test: { ok: true } ] }
console.log("test2==", JSON.stringify(test)); // {"obj":[]}
console.log("test3==", JSON.stringify(test.obj['test'])); //{"ok":true}
  1. 默认情况下,object日志输出的时候,会往下几级,输出结果尽可能的完整,所以可以完整输出
  2. array类型支持字符串之类的作为下标索引,但JSON.stringify的时候,会被忽略,所以输出的是个空的数组
  3. 数据还是存在的

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据