为什么nodejs将我的对象键字符串转换为对象字面值?

时间:2015-08-02 15:14:17

标签: javascript node.js object

以此代码为例:

test = {};
test['hey'] = {
    a:'noob'
}
console.log(test);

它会输出: enter image description here

现在,请理解:

test = {};
test[1] = {
    a:'muffin'
}
console.log(test);

将输出:enter image description here

我的问题是:是否可以使用字符串作为对象键? (它已经可以了,但是nodejs正在将它转换成对象文字),这是我不想要的。我希望它在单引号内,如:

{ 'hey': { a: 'test' }}

1 个答案:

答案 0 :(得分:3)

对象键始终是字符串。编写对象的两种不同方式没有区别。

对象:

{ 'hey': { a: 'test' }}

与:

完全相同
{ hey: { a: 'test' }}

将对象显示为文本的代码只具有编写较短格式的逻辑。如果没有,您会看到引用的所有标识符:

{ 'hey': { 'a': 'test' }}

如果您使用的是不能在标识符中使用的任何字符,则只需在名称周围使用引号。例如:

{ '{ an : "unusual name" }': { a: 'test' }}