如何在javascript

时间:2016-08-30 10:10:14

标签: javascript performance

我接受了一次采访,其中有人问我这个问题。任何人都可以解释所有方面,以便我清楚地了解在何时使用哪种结构。

1 个答案:

答案 0 :(得分:0)

阵列:

  • 数组提供顺序,对象不(至少尚未)
  • 当用作具有相同类型项目的非稀疏列表时,可以优化(速度甚至内存占用)的数组。
  • Arrays提供了许多函数来处理这个数据结构

物件:

  • 对象更通用
  • 将对象用作词典:查找比迭代数组更快以找到正确的项目。
    return itemsById[id]
  • 也可以优化具有相同隐藏类的对象代码。

结论:

数组:如果您将数据视为列表,请使用它们;相同类型可提高性能,但不是必需的 更确切地说:列表没有间隙(缺少索引),数据可能有间隙,但列表不应该。如果列表有间隙,那么索引的含义超出了顺序,它可能是带有数字键的字典。

字典:普通对象用作字典,以便快速查找。提到是分开的,因为它是一种不同的心态,拥有/处理项目字典并处理构成某些属性的对象。

对象:“某个对象”属性的组合。就像一个人的身体部位。或者数据表中的“行”:{id, firstName, lastName, ...}
避免使用枚举属性。如果你有......像{foo1, foo2, foo3, ...} foo很可能是一个列表,应该这样建立(只是让你的生活更轻松)。
除非此对象是字典