关于 Chrome 和 Firefox 中 Console.log 的问题

Question regarding Console.log in Chrome and Firefox

我正在思考这个:

console.log in chrome 和 firefox 显示相同的结果,排序前后(排序后的结果)。 playcode.io 编辑器中的快速测试显示了预期的结果。 chrome 中的 alert 方法也可以正常工作。 有人知道这件事的背景吗?

找到这个主题: JavaScript console.log execution order?

但我不是很明白...

let data = [

    {A: 100232}, 
    {A: 223434},
    {A: 233434},
    {A: 645455},
    {A: 212334},
    {A: 34343},
    {A: 743434},

];

console.log(data);
data.sort(function(a, b){return b.A - a.A}); 
console.log(data);

这不是问题,这就是 console.log 在某些浏览器中的工作方式。它正在向对象打印 link,一旦您在控制台中打开该对象,它就会显示该对象的当前版本。见 docs:

Don't use console.log(obj), use console.log(JSON.parse(JSON.stringify(obj))).

This way you are sure you are seeing the value of obj at the moment you log it. Otherwise, many browsers provide a live view that constantly updates as values change. This may not be what you want.

要在控制台记录时查看对象的版本,试试这个:

let data = [

    {A: 100232}, 
    {A: 223434},
    {A: 233434},
    {A: 645455},
    {A: 212334},
    {A: 34343},
    {A: 743434},

];

console.log(JSON.stringify(data));
data.sort(function(a, b){return b.A - a.A}); 
console.log(JSON.stringify(data));