什么是JavaScript数组?

Phi*_*enn 3 javascript

我试图了解JavaScript数组是什么,因为传统的编程语言将数组定义为可以使用偏移量进行寻址的连续存储区域.

现在,普通的JavaScript对象可以解决为:

myObj.myProperty = "my Value";
Run Code Online (Sandbox Code Playgroud)

要么

myObj["myProperty"] = "my Value";
Run Code Online (Sandbox Code Playgroud)

因此,JavaScript数组只是在它的寻址中使用数字而不是名称:

myObj[0] = "my Value";
myObj.length // === 1
Run Code Online (Sandbox Code Playgroud)

JavaScript数组也有方法,例如slice()和join().

问:到目前为止我所说的是真的吗?

Mar*_*ahn 5

JavaScript数组是一个哈希对象,其中使用了附加的数组函数Array.prototype.简而言之,这是JavaScript中的"数组":

var x = {
    length : 3,
    '0'    : 'first',
    '1'    : 'second',
    '2'    : 'third'
};
x.__proto__ = Array.prototype;
Run Code Online (Sandbox Code Playgroud)

正如您所期望的那样,所有数组函数只对索引起作用,但是您也可以对通常的JS对象执行的数组对象执行任何操作:

ary.foo = 'bar';
Run Code Online (Sandbox Code Playgroud)