对象属性顺序和JSON.stringify相等

时间:2018-08-23 22:13:13

标签: javascript object properties stringify

基于不保证属性顺序的对象的定义,以下内容是否有可能返回false?

JSON.stringify({a: "A", b: "B"}) == JSON.stringify({a: "A", b: "B"})

更新:当然,我在控制台中进行了尝试,但我总是正确的,但这与不能保证属性顺序的事实背道而驰。我不确定在什么时候属性的顺序与声明时的顺序不同。

以下还证明了该属性的顺序保持不变:

example = {}
example.a = "A"
example.c = "C"
example.b = "B"

JSON.stringify(example) == JSON.stringify({a: "A", c: "C", b: "B"})

1 个答案:

答案 0 :(得分:0)

JSON.stringify()返回一个字符串,因此,如果属性的顺序更改,则返回的字符串也会更改。

只需尝试

console.log(JSON.stringify({a: "A", b: "B"}) == JSON.stringify({a: "A", b: "B"}));
console.log(JSON.stringify({a: "A", b: "B"}) == JSON.stringify({b: "B", a: "A"}));