【问题标题】:What benefit do you get in javascript declaring an array with a specific length? [duplicate]javascript 声明具有特定长度的数组有什么好处? [复制]
【发布时间】:2014-06-04 05:17:50
【问题描述】:

在大多数 javascript 应用程序中,我通常会这样声明一个数组

var x = [];

但我在 MDN 上看到了大量采用这种方法的示例代码

var x = new Array(10);

对于 V8/其他现代 JS 引擎,您是否看到了一种真正的好处?

【问题讨论】:

  • 性能,虽然可以忽略不计。
  • new Array(10); 显式声明长度对我来说没有任何意义,因为 JS 中的数组没有实际长度...

标签: javascript


【解决方案1】:

没有。 Javascript 没有实现真正的数组。这一切都是通过 javascript 对象表示法抽象出来的。

这么说:

a = [0, 1];
b = {"0": 1, "1": 1};

效果一样:

a[0] //0
b[0] //0

要记住的另一件事是当你这样做时:

a[100] = 100;

长度自动设置为 101。即使:

a[2] //undefined

【讨论】:

  • 我记得有人演示了一些新引擎相信大小参数并实际上做了一些预分配。过去,数组大小是一个的想法,因为如果真的旧的运行时会盲目地预先分配而不考虑值,从而导致可能的内存不足条件。
  • 它在内存分配方面有所不同。所以这可能取决于场景。
猜你喜欢
  • 2014-04-11
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 2020-08-04
  • 2018-10-26
  • 1970-01-01
  • 2012-06-05
相关资源
最近更新 更多