数组和对象都是在大空间放很多小空间
{}对象中的数据是没有顺序的
[]数组中的数据是有顺序的
object--对象类型 --- 这个是对象类型
{}--俗称对象 --- 这是单纯的对象
[]--俗称数组 --- 在大空间放很多小空间,数组中的数据是有顺序的
null--空
数组的定义 -- 数组Array
语法1:var 名字 = []
语法2:var arr = new Array() --系统提供了各种构造函数用来创建数据
数组的细节:
1.数组中存放的数据类型是没有限制的,可以存放任意类型的数据
2.数组中小空间的编号,永远都是从0开始,一次向后递增的,数组中第一个小空间的编号,永远是0
3.数组中最后一个小空间的编号,永远都是数组中数据的个数-1
4.获取数组中数据的个数:数组.length 获取--数据长度
5.当使用[]定义数据时,如果[]中只有一个数据
数组方法:因为系统为了方便我们对数组进行操作,系统提供了一些专业操作数组的方法
unshift 给数组开头添加一个或多个元素
语法:数组.unshift(一个或多个元素) ----返回新数组的长度,改变原数组
shift 将数组的第一个元素删除
语法:数组.shift() ----返回被删除的元素,改变原数组
push 给数组末尾添加一个或多个元素
语法:数组.push(一个或多个元素) ---返回新数组的长度,改变原数组
pop 将数组最后一个元素删除
语法:数组.pop() ----返回被删除的元素,改变原数组
splice 对数组做增、删、改的操作
语法:数组.splice(开始下标,删除个数,要填充的1个或多个元素) ----返回被删除的元素组成数组,改变原数组
reverse 翻转数组
语法:数组.reverse() ----不需要返回值,改变原数组
concat 将一个或多个值或1一个数组或多个数组组合跟当前数组并成一个更大的数组
语法:数组.concat(1个或多个值或1个数组或多个数组) ----返回更大的数组
sort 对数组进行排序
语法:①数组.sort()
②数组.sort(function(a,b){return a-b/b-a}) ----不需要返回值,改变原数组
join 使用指定的连接符将数组所有元素连接成一个字符串
语法:数组.join(连接符) ----返回字符串
slice 截取数组
语法:数组.slice(开始下标,结束下标) ----返回截取出来的数组片段组成的新数组,结果不包含结束下标对应的元素
如果省略连接符,默认是逗号连接
数组的操作:
获取数组中的具体数据:
数组[小空间编号] 小空间编号称--下标(索引)
eg: var arr = ['小白','小红','小绿','小黄']
索引号: 0 1 2 3
添加:如果要添加的下标大于最大的下标,中间一定会创建多个空的小空间
当设置的下标大于最大下标,就是添加;如果设置的下标在0~最大下标之间,修改其中的值
删除数组数据:
1.因为数组也属于object对于数据来说同样适用
语法:delete 数组[下标] --只能删除小空间中对应的数据,但是小空间还存在
2.可以利用数组的长度来删除数组
语法:arr.length = 值 (超出指定长度的数据都被删除掉了;如果赋的值超出原本的长度,就会在后面创建多个空的小空间
给数组设置数据:
数组[下标] = 值
数组的遍历:将数组每个元素都访问一次,利用数组的下标,是从0开始递增的,通过循环进行遍历
数组和对象遍历的区别:
1.for in遍历出来的下标是字符串 for in遍历出来的是数字 只能遍历有值的小空间
2.for in只遍历有值的空间 for in=0 会将空的小空间中的值也遍历出来
建议使用i=0的方式去遍历
数组的规律:第一个下标是0,最后一个下标是arr.length-1
输出第一个元素:arr[0];
输出最后一个元素:arr[arr.length-1];
可以将数组理解成是由键值对组成的数据,键是数字
可以将对象理解成是由编号的很多小空间组成,下标是字符串
数组中数据类型没有限制,可以放number、boolean、undefined、string、object、function
数组的嵌套:
数组中的数据也可以是数组,这样就形成了数组的嵌套
大数组arr
中数组 arr[0]
小数组 中数组[1]