十五、数组基础、数组方法、数组排序
一 、数组基础
1.1 声明数组的三种方式
推荐(都用)数组字面量的形式创建数组
var arr1 = []; //数组字面量
// 系统内置的Array构造函数声明数组
var arr2 = new Array(); //不推荐
var arr3 = Array(); //不使用
所有的数组(不论哪种声明方式)都继承Array.prototype
,其下的方法和属性都可以被继承使用。
声明对象的三种方式:(类比一下数组)
推荐使用对象字面的形式创建对象
var obj1 = {
};//对象字面量
// 系统内置的 Object 构造函数声明对象
var obj2 = new Object();
var obj3 = Object();
所有的对象都继承Object.prototype
,其下的方法和属性都可以被继承使用。
1.2 数组是一个特殊的对象
1.2.1 数组为什么是一个特殊的对象:
它和对象一样也是一个键名对应一个键值,我们把数组中键名叫做数组元素的下标;同时数组也是对象的一种有序体现。
var arr = [1,2,3,4,5];
// 模仿数组声明一个对象
var obj = {
0: 1,
1: 2,
2: 3,
3: 4,
4: 5
}
// 打印3
console.log(arr[2]); //3
console.log(obj[2]); //3
1.2.2 什么是数组下标:
数组中每一个元素对应有一个位置,这个位置就是我们所说的下标,或者叫index索引。
1.2.3 为什么打印 数组[length]是undefined
呢?
var arr = [1, 2, 3, 4, 5];
console.log(arr[5]); //undefined
因为数组相当于一个特殊的对象,访问对象不存在的属性时,返回undefined
;访问数组[length]时,数组中并没有这个元素,所以也返回undefined
。
var obj = {
0: 1,
1: 2,
2: 3,
3: 4,
4: 5
}
console.log(obj[5]);//undefined
1.2.4 数组和对象一样可以进行增改查
var arr = [1,2,3,4,5];
arr[6] = 7; //增
arr[0] = 10; // 改
console.log(arr