数组仅仅是伪装的对象吗?为什么?他们是以什么方式(这样/不这样)的
我一直认为JS中的数组和对象本质上是相同的,主要是因为访问它们是相同的
var obj={'I':'me'};
var arr=新数组();
arr['you']=“他们”;
控制台日志(obj.I);
控制台日志(arr.you);
console.log(obj['I']);
console.log(arr['you']);
我是不是被误导了/弄错了/错了?关于JS文本、原语和字符串/对象/数组等,我需要了解什么
数组/对象仅仅是伪装的字符串吗?为什么?他们是以什么方式(这样/不这样)的
数组是对象
但是,与常规对象不同,数组具有某些特殊功能
-
数组的原型链中还有一个额外的对象,即
Array.prototype。此对象包含可以在数组实例上调用的所谓数组方法。(方法列表如下:http://es5.github.com/#x15.4.4) -
数组有一个
length属性(它是活动的,因此是自动更新的)(请阅读此处:http://es5.github.com/#x15.4.5.2) -
关于定义新属性,数组有一个特殊的算法(请阅读:http://es5.github.com/#x15.4.5.1). 如果您为数组设置了一个新属性,并且该属性的名称是一个可以强制为整数的sting(如
'1','2','3',等等),则应用特殊算法(在规范第123页中定义)
除了这三件事,数组就像普通对象一样
了解规范中的阵列:http://es5.github.com/#x15.4