基于不保证属性顺序的对象的定义,以下内容是否有可能返回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"})
答案 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"}));