JavaScript数组
作用:存储一堆变量,不限制存储的数据类型,内存中连续存储多个数据的存储空间,用统一的名字,
优势:连续存储多个数据
创建数组的方法:
1.var arr = [ ] 创建一个空数组
2.var arr1 = new Array( n) 创建一个已知数据个数的空数组,n表示数据个数
数组不显示存储类型:
例:var array = ["ABC",true,3.14];
通过数组的下标来选中相应的数据:
数组下标为:
例:var arr =[a,b,c,d,e]
0 1 2 3 4
替换数组中的某个内容:
arr [0] = "8"
数组名 被替换的下标 替换的数据
console.log(arr.length) 获取最后一个元素
length表示数组的最后一个下标加一,通常表示数组数量
删除数组某个元素:
例:1.arr[1]=""
删除最后一个元素
例:2.arr.length--
数组类型:
原始类型: number string boolean undefiend null
数据直接保存在变量本地的数据类型
按值传递:两个变量之间赋值时,或者将变量作为参数传入函数时,其实仅将原变量中的值赋值一个 副本给对方
修改新变量,不会影响原变量的值
引用类型: 数据无法直接保存在变量本地的数据类型
因为变量只允许保存一个值,而引用类型往往同时保存多个值
会在window对象之外,创建一个独立的存储空间,并且每个独立的存储空间都有一个唯一的地 址
变量中依然保存的是一个值,只是数组中仅保存地址而已 。他传递的时一个地址,其本质也算是按值传递,这称为引用
垃圾回收:JS会自动释放不在被任何变量引用的对象
垃圾回收器:专门回收不在使用的对象的小程序
1.记录每个对象,每几个变量引用着,每多一个变量引用计算器就+1,当一个变量赋值为null就表示该变量不被引用,则计数器-1
2.当计数器成为0时,表示对象都不再被任何变量引用,就开始回收对象。
关联数组:可以自定义下标名称的数组,下标为数字的数组是索引数组。
作用:让每个数据有明确的含义,查找更方便。
例:var arr=[]
arr["name"] = "科比"
arr["sex"] = "男"
arr["score"] = 18
arr["class"] = 5
console.log(arr["name"]) 直接通过自定义下标名字查找对应的数据
数组的API
转字符串:String(对象):将数组中每个元素都转换为字符串,再用,链接
(对象名)arr.join:将数组种的每个元素转换为字符串
通过id来获取标签对象
document.getElementById("Id名")
拼接和选取:
作用:将其他元素或者另一个数组,凭借到当前数组结尾
例:var arr=[1,2,3]
var arr2=[4,5]
arr = arr2.concat(7,8,arr2)
注意:concat无权修改原数组,只能返回新数组,必须使用变量拼接后返回的值,还会打散参数中的子数组为单个元素,单个拼接
数组的修改(删除,插入,替换)
删除数组从starti开始的第n个元素
arr.splice(starti,n)
例:var arr[1,2,3,4,5]
0 1 2 3 4
var ar2 = arr.splice(3,5)
注意:可以修改原数组
length -n(支持负数)
删除:例:var a = [1,2,3,4]
删去开头2个数,并且接到结尾
var cont = a.splice(0,2)
a = a .concat(cont)
插入:
arr.splice(starti,0,value1,value2...)starti表示位置,0表示一个都不删,原位置保持不变,向后顺移
替换:
arr.splice(starti,n,value1,value2)
表示先删除从starti位置开始的n个元素,再在starti位置插入value1,value2