【发布时间】:2017-02-05 21:36:09
【问题描述】:
除了第一种形式可以使用变量而不仅仅是字符串文字这一显而易见的事实之外,还有什么理由使用一个而不是另一个,如果是,在哪些情况下?
在代码中:
// Given:
var foo = {'bar': 'baz'};
// Then
var x = foo['bar'];
// vs.
var x = foo.bar;
上下文:我编写了一个生成这些表达式的代码生成器,我想知道哪个更可取。
【问题讨论】:
-
只是插话,而不是回答你原来的问题(因为到目前为止你已经有很多很好的解释),但在速度方面也没有值得一提的区别:jsperf.com/dot-vs-square-brackets。上面的测试最多只能给它们中的任何一个提供 2% 的余量,它们并驾齐驱。
-
此问题/答案也可用于 UTF-8 密钥。
标签: javascript syntax object-literal