js数组的声明和读写
2019-08-21 本文已影响0人
Aniugel
1、3种声明方法
var arr1 = [];//数组字面量
var arr2 = new Array()//不推荐
var arr3 = Array();//通过系统内置的Array构造函数声明数组 //不使用
console.log(arr1.__proto__)
console.log(arr2.__proto__)
console.log(arr3.__proto__)
// 所有数组都继承于Array.prototype(数组原型)
2、数组的本质就是对象
// 对象
var obj1 = {};//对象字面量
var obj2 = new Object();
var obj3 = Object();//通过系统内置的Object构造函数声明数组 //不使用
console.log(obj3.__proto__ === Object.prototype)// true
// 所有对象都继承于Object.prototype
// 其实数组就是对象的特殊的类型 其本质就是object=> typeof arr-->object
var arr = [1, 2, 3, 4, 5]
//索引index 0 1 2 3 4
// 下面用对象模拟数组
var obj = {
0: 1,
1: 2,
2: 3,
3: 4,
4: 5
}
console.log(arr[0] === 1)//true
console.log(obj[0] === 1)//true
3、数组的相关类型和属性
var arr1 = [, , ,];//稀松数组 后面逗号会省略 其他的都是密集数组
var arr2 = [, 1, 2,];//稀松数组
var arr3 = [, , 3];//稀松数组
var arr4 = Array(1, 2, 3)//构造函数创建数组 里面是不能是稀松数组 不然报错
var arr5 = Array(3)//用长度创建稀松数组 构造函数方式 数字不能是小数 不然报错Array(3.2)
var arr6 = Array('a')// ['a']
console.log(arr1.length)//3
console.log(arr2.length)//3
console.log(arr3.length)//3
console.log(arr1)//[empty × 3]
console.log(arr1[0])//undefined
console.log(arr2)//[empty, 1, 2]
console.log(arr3)//[empty, empty, 3]
console.log(arr4)//[1, 2, 3]
console.log(arr5) //[empty × 3]
console.log(arr6) //['a']