JS数组也是一种对象。数组
咱们用JavaScript处理的全部东西,均可以视为是一种对象。app
JavaScript中有两种数据类型,基本类型数对象类型,可是基本类型基本都是包括在对象类型之中的。函数
数组、函数、Date在JavaScript中都是预约义的对象,它们内部都包含了方法、属性和各自的标准化句法。学习
JavaScript数组有如下三种不一样的属性:
1 数组的索引也是其属性
2 内置属性
3 你能够本身添加自定义属性
前两种属性是你们比较熟知的,你可能天天都在使用,可是我仍是想在这里简单的多说两句,而后再来谈谈如何给数组添加自定义属性。ui
将索引做为属性
JavaScript数组可使用方括号句法,例如var ary = [“orange”,"apple","lychee"];。
数组元素的索引基本上也是一种属性,而其属性的名称永远都是非负整数。
数组的索引元素对相似一个对象的关键值对。索引是数组对象的独特特性,与其余内置属性不一样,它们能够单独经过方括号进行配置,例如 ary[3] = “peach”;。spa
内置属性
数组拥有内置属性,例如array.length。这个长度属性包含了一个整数值,用来表示数组的长度。
通常状况下,内置属性常常能够在数组等预先定义的JavaScript对象中找到。内置属性与内置方法联合在一块儿,它们能够对普通对象进行自定义,让对象知足不一样的需求。
在访问内置属性的时候,你可使用两种句法:object.key或是object[“key”]。也就是说,在获取数组长度的时候,你能够写成ary[“length"]。code
为数组对象建立自定义属性对象
JS数组的自定义属性可枚举,可是不算入数组的lengthblog
它能够被for……in等循环所拣选索引
数组是一种预约义对象,它在不一样的索引中储存了不一样的种类的值。
一般状况下,咱们没有给数组添加自定义属性的须要;也是出于这个缘由,咱们在刚刚学习JavaScript的时候,没有人告诉咱们能够给数组添加属性。事实上,若是你想要向对待通常对象那样,给数组添加关键值对,你也可使用通常的对象来达到目的。可是,这并非说彻底没有特殊状况,在某些状况下,你能够利用数组也是一种对象的事实,给它添加一个或多个自定义属性。
1 var ary = ["orange","apple","lychee"]; 2 ary.itemClass = "fruits"; 3 console.log(ary); // ["orange", "apple", "lychee", itemClass: "fruits"] 4 5 for(var i = 0 ;i<ary.length;i++){ 6 console.log(ary[i]); 7 } 8 //依次打印 orange apple lychee 9 10 11 for(var i in ary){ 12 console.log(ary[i]); 13 } 14 //依次打印 orange apple lychee fruits