javascript 中的数组文字表示法是什么?什么时候应该使用它?
JSLint 给我这个错误:
第 11 行第 33 行的问题:使用数组文字表示法 []。
var myArray = new Array();
什么是数组文字表示法以及为什么它希望我使用它?
它在这里显示 new Array();
应该可以正常工作......我缺少什么吗?
JSLint is giving me this error:
Problem at line 11 character 33: Use the array literal notation [].
var myArray = new Array();
What is array literal notation and why does it want me to use it instead?
It shows here that new Array();
should work fine... is there something I'm missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
数组文字表示法是仅使用空括号定义新数组的地方。 在您的示例中:
这是定义数组的“新”方式,我认为它更短/更干净。
下面的例子解释了它们之间的区别:
array literal notation is where you define a new array using just empty brackets. In your example:
It is the "new" way of defining arrays, and I suppose it is shorter/cleaner.
The examples below explain the difference between them:
另请参阅: var x = new Array(); 有什么问题
除了 Crockford 的论点之外,我认为这也是因为其他语言具有类似的数据结构,并且恰好使用相同的语法; 例如,Python 有列表和字典; 请看下面的例子:
Python 在语法上也是正确的 Javascript,这不是很巧妙吗? (是的,结尾的分号不见了,但 Javascript 也不需要这些)
因此,通过重用编程中的常见范例,我们使每个人都不必重新学习一些不应该重新学习的东西。
See also: What’s wrong with var x = new Array();
Aside from the Crockford argument, I believe it is also due to the fact that other languages have similar data structures that happen to use the same syntax; for example, Python has lists and dictionaries; see the following examples:
Isn't it neat how Python is also grammatically correct Javascript? (yes, the ending semi-colons are missing, but those aren't required for Javascript, either)
Thus, by reusing common paradigms in programming, we save everyone from having to relearn something that shouldn't have to.
除了 Crockford 的争论之外,jsPerf 还表示它更快。 http://jsperf.com/new-vs-literal-array-declaration
Aside from the Crockford argument, jsPerf says that it's faster. http://jsperf.com/new-vs-literal-array-declaration
在查看了@ecMode jsperf之后,我做了一些进一步的测试。
当使用push添加到数组时,new Array()在Chrome上要快得多:
http ://jsperf.com/new-vs-literal-array-declaration/2
使用索引添加对于[]来说稍微快一些。
After looking at @ecMode jsperf, I did some further tests.
When using push to add to the array new Array() is considerably faster on Chrome:
http://jsperf.com/new-vs-literal-array-declaration/2
Using index to add is slightly faster for [].