JavaScript或Node.js意外地对对象进行排序

ine*_*bug 0 javascript sorting object node.js

当我运行此代码时 node app.js

'use strict';

var data = {"456":"First","789":"Second","123":"Third"};

console.log(data);
Run Code Online (Sandbox Code Playgroud)

我正在考虑下一个结果:

{ '123': 'Third', '456': 'First', '789': 'Second' }
Run Code Online (Sandbox Code Playgroud)

为什么JS或Node.js(我不知道是谁)按键对这个对象排序?我不想要这个.

T.J*_*der 5

您所看到的是V8 JavaScript引擎的行为.它不是JavaScript规范指定的东西,也不是你可以依赖的东西(大多数引擎都不这样做).

但重要的是:JavaScript对象没有顺序.因此,V8的行为与将这些键置于任何其他顺序一样正确.如果您想要特定顺序的东西,则必须使用有序容器,如数组.