为什么数组可以在Javascript中将键值对行为存储为对象?
我们通常使用一个对象来存储键值对,比如 var objs={}; objs['ios']=123 objs['android']=239 console.logobjs['ios'];//产出123 但是,我们发现数组可以执行与对象相同的行为为什么数组可以在Javascript中将键值对行为存储为对象?,javascript,arrays,object,Javascript,Arrays,Object,我们通常使用一个对象来存储键值对,比如 var objs={}; objs['ios']=123 objs['android']=239 console.logobjs['ios'];//产出123 但是,我们发现数组可以执行与对象相同的行为 var arr1 = []; arr1['ios'] = 123 arr1['android'] = 239 console.log(arr1['ios']); // output 123 arr1['ios'] = 897 console.log(a
var arr1 = [];
arr1['ios'] = 123
arr1['android'] = 239
console.log(arr1['ios']); // output 123
arr1['ios'] = 897
console.log(arr1['ios']); // output 897
这背后有什么原因吗?如果你走到第一行,你会发现是这样的
JavaScript数组类是在
阵列的构造;哪些是高级的、类似列表的对象
javascript中并没有数据类型数组,因为数组只是类似列表的对象,其原型具有执行遍历和变异操作的方法
这就是问题数组中可以执行与对象相同的行为的原因。数组是类似列表的对象,因此这样做不会向数组中添加值,而是会向数组中添加属性。您可以检查该数组的长度,它仍然是0
var arr1 = [];
arr1['ios'] = 123
arr1['android'] = 239
console.log(arr1['ios']); // output 123
arr1['ios'] = 897
console.log(arr1['ios']); // output 897
var arr1=[];
arr1['ios']=123
arr1['android']=239
console.logarr1['ios'];
console.log“长度为”,arr1.Length;
//虽然对于..in不建议用于数组
对于arr1中的let键{
控制台.logarr1[键]
}因为在JavaScript中,数组是一种特殊形式的对象,我应该说是.console.logtypeof arr1;//ObjectBut JSON定义了一个数组,这就是为什么当你用额外的属性字符串化一个JS数组时,你会失去额外的属性。但是会向数组中添加属性这是OPs的问题,为什么?