问题

除了第一个表单可以使用变量而不仅仅是字符串文字这一明显事实之外,是否有任何理由使用一个而不是另一个,如果是这样,在哪些情况下?

在代码中:

 // Given:
var foo = {'bar': 'baz'};

// Then
var x = foo['bar'];

// vs. 
var x = foo.bar;
 

上下文:我写了一个生成这些表达式的代码生成器,我想知道哪个更好.

  最佳答案

(Sourced from here .)

方括号符号允许使用不能使用点符号的字符:

 var foo = myForm.foo[]; // incorrect syntax
var foo = myForm["foo[]"]; // correct syntax
 

包含非 -ASCII(UTF-8)字符,如 myForm["ダ"]( 更多的例子 )。

第二,方括号符号在处理时是有用的 以可预测的方式变化的财产名称:

 for (var i = 0; i < 10; i++) {
  someFunction(myForm["myControlNumber" + i]);
}
 

Roundup:

  • 点符号写得更快,读得更清楚。
  • 方括号符号允许访问包含属性的属性 特征和选择 使用变量的属性

不能用点符号使用的另一个字符示例是自己包含点的属性名称。

例如,json响应可以包含一个名为bar.Baz的属性.

 var foo = myResponse.bar.Baz; // incorrect syntax
var foo = myResponse["bar.Baz"]; // correct syntax
 

  相同标签的其他问题

javascriptsyntax