JavaScript数组的行为类似于对象

use*_*628 1 javascript arrays object

我试图在JavaScript中理解一些东西.

让我们说我做了以下事情:

   let x = [];
   x['Monday'] = 'Work';
   x['Tuesday'] = 'More Work';

   console.log(x) //[Monday: "Work", Tuesday: "More Work"]
   console.log(x.Monday) //"Work"
   console.log(x.Tuesday) //"More Work"
Run Code Online (Sandbox Code Playgroud)

有人可以帮助解释为什么数组现在表现得像一个对象?

smn*_*brv 6

因为数组是一个对象

[] instanceof Object
> true

[] instanceof Array
> true
Run Code Online (Sandbox Code Playgroud)

两者都给你真实,因为Array扩展了普通的Object功能.此外,数组通过字符串值索引其所有成员

const array = [];

array[0] = 1;

array['0'] // will give you 1
Run Code Online (Sandbox Code Playgroud)

这也是大多数人意想不到的.因此,即使您将数组用作带索引的普通数组,该数组的行为也类似于Object