首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是javascript中的数组文字表示法,什么时候应该使用它?

什么是javascript中的数组文字表示法,什么时候应该使用它?
EN

Stack Overflow用户
提问于 2009-07-07 20:36:59
回答 4查看 72.3K关注 0票数 71

JSLint给了我这个错误:

第11行字符33处的

问题:使用数组文字表示法[]。

代码语言:javascript
复制
var myArray = new Array();

什么是数组文字表示法?为什么它要我用它来代替?

这里显示了new Array();应该可以很好地工作。我是不是漏掉了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-07-07 20:38:53

数组文字表示法是仅使用空方括号定义新数组的地方。在您的示例中:

代码语言:javascript
复制
var myArray = [];

这是一种定义数组的“新”方式,我认为它更短/更简洁。

下面的示例解释了它们之间的区别:

代码语言:javascript
复制
var a = [],            // these are the same
    b = new Array(),   // a and b are arrays with length 0

    c = ['foo', 'bar'],           // these are the same
    d = new Array('foo', 'bar'),  // c and d are arrays with 2 strings

    // these are different:
    e = [3],             // e.length == 1, e[0] == 3
    f = new Array(3);   // f.length == 3, f[0] == undefined

ReferenceWhat’s the difference between “Array()” and “[]” while declaring a JavaScript array?

票数 105
EN

Stack Overflow用户

发布于 2009-07-07 23:19:47

另请参阅:What’s wrong with var x = new Array();

除了克罗克福德的论点之外,我认为这也是因为其他语言也有类似的数据结构,恰好使用相同的语法;例如,Python has lists and dictionaries;请参见以下示例:

代码语言:javascript
复制
// this is a Python list
a = [66.25, 333, 333, 1, 1234.5]

// this is a Python dictionary
tel = {'jack': 4098, 'sape': 4139}

Python在语法上也是正确的Javascript,这不是很好吗?(是的,结尾的分号丢失了,但Javascript也不需要这些分号)

因此,通过在编程中重用常见的范例,我们使每个人不必重新学习不应该学习的东西。

票数 23
EN

Stack Overflow用户

发布于 2014-01-04 14:29:08

除了克罗克福德的论点,jsPerf说它更快。http://jsperf.com/new-vs-literal-array-declaration

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1094723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档