为什么JSON.stringify()对于某些对象返回空结果

时间:2018-07-27 11:07:57

标签: javascript

这个问题是如此基本,但我不知道答案。

为什么screen对象在字符串化时返回空?

这是否意味着JSON.stringify()需要对输入具有读/写访问权限?

let a = {foo: 'one', bar: 2};


console.log(JSON.stringify(a));
console.log(JSON.stringify(screen));

1 个答案:

答案 0 :(得分:9)

FROM MDN网络

对于所有其他Object实例(包括Map,Set,WeakMap和WeakSet),将仅对其可枚举的属性进行序列化。

  

阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable

    console.log((window.screen));
    console.log(JSON.stringify(window.screen));
    console.log(window.propertyIsEnumerable(screen));