我很确定这是由于不同的Javascript引擎在内部跟踪对象属性的方式所致。以这个为例:
var obj = {"1" : "test","0" : "test 2"};for(var key in obj) { console.log(key);}这将在Firefox中记录1、0,但在V8(Chrome和NodeJS)中记录0、1。因此,如果需要确定性,则可能必须遍历将每个键存储在数组中,对数组进行排序,然后通过遍历该数组分别对每个属性进行字符串化。

我很确定这是由于不同的Javascript引擎在内部跟踪对象属性的方式所致。以这个为例:
var obj = {"1" : "test","0" : "test 2"};for(var key in obj) { console.log(key);}这将在Firefox中记录1、0,但在V8(Chrome和NodeJS)中记录0、1。因此,如果需要确定性,则可能必须遍历将每个键存储在数组中,对数组进行排序,然后通过遍历该数组分别对每个属性进行字符串化。