对象分为三种:
内建对象、宿主对象、自定义对象
数组(Array) 也是对象
---------区别:
----------------普通对象用字符串作为属性名
----------------数组使用数字作为索引操作元素
---------索引 :
---------------从0开始的整数就是索引
数组的存储性能比普通对象要好,一般用数组存储数据
var arr = new Array();
console.log(typeof arr); //object
//添加
arr[0] = 10;
arr[1] = 11;
arr[2] = 12;
//读取,如果读取不存在的索引,不会报错,返回undefined
console.log(arr[1]); //11
console.log(arr[3]); //undefined
//获取数组长度length
//1、length返回
// 对于连续数组,使用length可以获取数组长度(元素个数)
console.log(arr.length); //3
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
arr[9] = 10;
//对于非连续数组,使用length会获取最大的索引+1
//尽量不要使用非连续数组
console.log(arr.length); //(9+1) 10
console.log(arr); //[ 1, 2, 3, 4, 5, <4 empty items>, 10 ]
arr[12] = 13;
console.log(arr); //[ 1, 2, 3, 4, 5, <4 empty items>, 10, <2 empty items>, 13 ]
//2、length设置
//length > 原长度,多出部分空出来
arr.length = 15;
console.log(arr);//[ 1, 2, 3, 4, 5, <4 empty items>, 10, <2 empty items>, 13, <2 empty items>]
//length < 原长度,多出部分被删除
arr.length = 4;
console.log(arr);//[ 1, 2, 3, 4 ]
//向数组最后一个位置添加元素,最大索引+1=arr.length
arr[arr.length] = 20;
console.log(arr);//[ 1, 2, 3, 4, 20 ]