【发布时间】:2020-08-25 05:44:40
【问题描述】:
我使用这个术语很松散,因为 JavaScript 中的数组可能看起来像这样:
let array = [1, 'a', "hello"];
如果我这样做 array.push('end') 我会得到
[1, 'a', "hello", "end"]
JavaScript 中的数组似乎与计算机科学中教授的数组无关,因为所有项目都属于同一类型,这使得通过索引访问变得容易,因为可以使用简单的数学来确定每个索引的位置在内存中。
我的假设是一个单链表,其中数据是对另一个对象的引用。
如果有人知道 V8 引擎的代码在哪里,那会很酷。
【问题讨论】:
-
每种语言都有不同的数据类型实现。这就是它的设计方式。
-
好吧,javascript 是一种弱类型语言,当然你可以有混合类型的数组。如果您想要强类型的东西,请查看 typescript。不要将 javascript 数组称为“不正确”的数组。它们是数组。数组是实现可迭代接口的简单容器,因此可以有各种类型的数组,javascript 是数字关联的任何 [] 类型数组。
-
@r3wt "术语数组通常用于表示数组数据类型,一种由大多数高级编程语言提供的数据类型,由一组值或变量组成,可以通过以下方式选择一个或多个在运行时计算的索引。数组类型通常由数组结构实现;然而,在某些语言中,它们可能由哈希表、链表、搜索树或其他数据结构实现。 TLDR:OP 是正确的,如果我们谈论 array data structures
-
"我的假设是一个单链表" - 这个假设基于什么?不,js
Array数据结构在其他语言中是所谓的“可变大小数组”、“向量”或双端队列,通常是这样实现的。
标签: javascript data-structures v8