1.什么是数组?
存储一堆变量 内存中连续存储多个数据的存储空间,再统一取个名字
连续存储可以方便维护和查询
2.何时使用数组?
只要是连续存储多个数据,必须使用数组
var arr4=new Array('cba',1000,true,"cba");
console.log(arr4[3])//取值
arr4[3] = 'ftp';//赋值
console.log(arr4[3]);
不限制下标越界
console.log(arr4[4]);//下标越界取值 不报错 返回undefined
arr4[4]= 500;//下标越界的赋值 不报错 自动在指定位置新建元素保存元素
数组不限制元素的个数:可以在任意位置添加新元素,如果新元素添加后,下标不连续—也称为“稀疏数组”
var arr11=[2,5,false,6,9,'sssss','fal',5000,true];
console.log(arr11[arr11.length-1]);
console.log(arr11);//没追加之前
数组的length属性:记录了理论上的元素个数 — 获取数组中元素的最后一个下标,然后+1得到整个数组的个数
console.log(arr11.length);
在数组的末尾追加数据怎么加?
arr11[9]="aaaa";
console.log(arr11);//追加之后
给数组的length赋值可以吗?
//删除arr11数组中的最后一个元素
arr11.length=arr11.length-1;
console.log(arr11);
//删除数组的末尾n个元素: arr.length= arr.length-n
数组的遍历
var arr=[1,9,6,8,7,41]
console.log(arr);
根据下标循环,索引数组 下标保持有顺序。
stu["name"]="jack";
stu["age"] =28;
stu["sex"] ='男';
console.dir(stu);
//访问
console.log(stu['sex']);
//遍历 for in
for(var key in stu){
console.log(key);//数组的自定义下标 当前下标名称
//获取数组中具体的值
console.log(stu[key]); //获取当前key对应的值
}
关联数组
1、什么是关联数组? 自定义下标名称的数组
对应的是:索引数组(下标为数字的数组)
2.为什么要用关联数组?
为了让每个数据都有明确的含义
目的:1、便于维护和读取 2、方便查找
3.什么时候用?
希望按照数据的意义,快速查找数组中的元素时
4.怎么用?
创建
1.创建空数组
var stu=[];
2.在数组中添加新元素,使用自定义的下标名称
数组的数据类型:
原始数据类型:数据直接保存在变量本地的数据类型
string number boolean …
按值传递:两个变量做赋值时,或将变量作为参数传入函数中时,其实只是将原变量中的值复制一个副本给对方
修改新变量,不会影响原变量的值
引用数据类型:数据无法保存在变量本地的数据类型 保存的是应用的地址
数组就是引用类型
为什么不能直接保存数组:一个变量只允许保存一个值 引用类型的数据往往同时保存多个值
所以在window之外,创立独立存储空间,每个存储空间都有一个唯一的地址
变量中仅保存地址的值 ----称为引用
引用类型:按值传递,传递的是地址,用新变量修改数组,等效于直接修改原数组
数组的存储原理图: