由於properties order in objects is not guaranteed in JavaScript,JSON.stringify()實際上如何表現?由於JavaScript中不保證對象中的屬性順序,因此JSON.stringify()實際上如何表現?
- 以下總是如此(同一物體)?
const o = { a: 1, b: 2 };
console.log(JSON.stringify(o) === JSON.stringify(o));
- 是對以下總是爲真(等於深對象,相同的密鑰聲明順序)?
- 如何使以下爲真(等於深對象,不同的密鑰聲明順序)?
console.log(JSON.stringify({ a: 1, b: 2 }) === JSON.stringify({ a: 1, b: 2 }));
console.log(JSON.stringify({ a: 1, b: 2 }) === JSON.stringify({ b: 2, a: 1 }));
1)是的,同一對象上的枚舉順序總是保證相同。 2)應該是,雖然沒有嚴格的保證,但我們期望確定性。 3)你不能「使」這是真的,你應該只使用[深層等式謂詞函數](https://stackoverflow.com/q/201183/1048572)而不是比較'JSON.stringify'結果 – Bergi