除了显而易见的事实,第一种形式可以使用变量而不仅仅是字符串文字,是否有理由在另一种形式上使用另一种形式?如果是这样,在哪种情况下?
在代码中:
// Given: var foo = {'bar': 'baz'}; // Then var x = foo['bar']; // vs. var x = foo.bar;
上下文:我已经编写了一个代码生成器来生成这些表达式,我想知道哪种更好。
方括号符号允许使用点符号不能使用的字符:
var foo = myForm.foo[]; // incorrect syntax var foo = myForm["foo[]"]; // correct syntax
包括非ASCII(UTF-8)字符,如myForm["ダ"]。
myForm["ダ"]
其次,方括号表示法在处理以可预测的方式变化的属性名称时非常有用:
for (var i = 0; i < 10; i++) { someFunction(myForm["myControlNumber" + i]); }
Roundup:
点符号的书写速度更快,阅读更清晰。 方括号表示法允许访问包含特殊字符的属性以及使用变量选择属性
不能与点符号一起使用的字符的另一个示例是 本身包含点的属性名称 。
例如,一个json响应可能包含一个名为的属性bar.Baz。
bar.Baz
var foo = myResponse.bar.Baz; // incorrect syntax var foo = myResponse["bar.Baz"]; // correct syntax