javascript问题:var a ="1"; b = {a:a},b变体不是{"1":1}

mlz*_*boy 2 javascript

 var a="1";
 b={a:a},
Run Code Online (Sandbox Code Playgroud)

b变体不是{"1":1},为什么会发生这种情况?

也想知道我是否想得到我想要的结果,我该如何解决这个问题

bob*_*nce 7

JavaScript有一个语法怪癖,其中:对象文字左侧的位不是右侧的位表达式.

它可以是带引号的字符串文字,也可以是标识符标记.在标识符的情况下,令牌是逐字记录的,就像它是带引号的字符串一样.所以{a:"1"}是一样的{"a":"1"}.

如果要将表达式用作属性名称,则必须使用[]属性访问运算符:

var b= {};
b[a]= a;
Run Code Online (Sandbox Code Playgroud)