【问题标题】:What is the difference between Array() and [] in Javascript and why would I use one over the other? [duplicate]Javascript 中的 Array() 和 [] 有什么区别,为什么我要使用一个而不是另一个? [复制]
【发布时间】:2010-02-04 22:30:59
【问题描述】:

可能重复:
What’s the difference between “Array()” and “[]” while declaring a JavaScript array?

在 JavaScript 中,您可以创建一个新数组,例如:

var arr = new Array();

或喜欢:

var arr2 = [];

有什么区别,为什么你会做一个而不是另一个?

【问题讨论】:

  • 据我所知,它做同样的事情。使用任何你喜欢的。
  • 哇,当我问这个问题时,欺骗检测器没有检测到这一点,真是太疯狂了。问题几乎相同......

标签: javascript arrays literals


【解决方案1】:

new Array(2) 拥有一个大小为 2 的数组,其中包含两个 undefineds。 [2] 生成一个大小为 1 的数组,其中包含数字 2。 new Array IMO 不符合 JavaScript 的精神,尽管它可能使数组构造更容易找到。这可能很重要,也可能不重要(我几乎只在 JavaScript 中为所有适用类型使用文字,并且我已经成功地编写/维护了大量 JavaScript [30-50 KLOC])。

edit 我猜经验丰富的 javascript 程序员避免使用 new Array 语法的原因是:

  • 它在参数编号和类型之间的行为不一致((new Array(X)).length == 1 对任何X 只要 typeof(X) != "number"
  • 它更冗长,您唯一获得的就是不规则性

【讨论】:

  • 第一个要点是完美的。这正是我一直在寻找的东西。谢谢!
【解决方案2】:

使用[] 而不是new Array() 的另一个(次要)原因是Array 可能会被覆盖(尽管我从未见过它发生)并且[] 保证可以工作。

Array = "something";
var a = new Array(); // Fails
var b = []; // Works

【讨论】:

    【解决方案3】:

    我相信它们是相同的。我从不使用 new Array();

    【讨论】:

    • 同意,做同一件事的两种方法
    • 但是你为什么不使用 new Array()?我知道大多数“有经验”的 JavaScript 开发人员不知道,但为什么不呢?
    猜你喜欢
    • 2011-10-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2011-07-20
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多