javascript - 在javascript中定义数组

标签 javascript arrays

我想在 javascript 中创建一个数组并记住两种实现方法,所以我只想知道根本区别是什么,以及这两种“样式”是否存在性能差异

var array_1 = new Array("fee","fie","foo","fum");
var array_2 = ['a','b','c'];

for (let i=0; i<array_1.length; i++){
  console.log(array_1[i])
}

for (let i=0; i<array_2.length; i++){
  console.log(array_2[i])
}

最佳答案

他们做同样的事情。 [] 表示法的优点是:

  • 它更短。
  • 如果有人做了一些愚蠢的事情,比如重新定义 Array 符号,它仍然有效。
  • 当您只定义单个条目时,不会产生歧义,而当您编写 new Array(3) 时,如果您习惯于查看构造函数中列出的条目,则很容易将其误读为意思是[3],而实际上它创建了一个长度为3并且没有条目的新数组。
  • 它可能会快一点点(取决于 JavaScript 实现),因为当您说 new Array 时,解释器必须查找 Array 符号,这意味着遍历作用域链中的所有条目,直到到达全局对象并找到它,而使用 [] 则不需要这样做。在正常用例中产生任何实际影响的可能性很低。尽管如此...

因此,使用 [] 有几个很好的理由。

新数组的优点:

  • 您可以设置数组的初始长度,例如var a = new Array(3);

我已经好几年没有任何理由这样做了(自从得知arrays aren't really arrays之后就不再这样做了,并且尝试预先分配它们是没有意义的)。如果你真的愿意,你可以随时这样做:

var a = [];
a.length = 3;

关于javascript - 在javascript中定义数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047582/

相关文章:

javascript - 阶乘乘以数字本身

javascript - 按对象内的值和日期对数组进行排序

c - 如何在C中逐行读取文件?

ios - 使用swift查找数组中某个值的索引

android - 数组适配器 : Json data to be sent to spinner

javascript - 返回仅包含正值的格式化对象

javascript - 如何使用 RingCentral 设置来电显示与区号匹配?

javascript - 滚动到网页底部的书签

javascript - 复选框未显示为已选中

javascript - React - Typescript 接口(interface) - 从联合类型获取 Prop 时出错