数组简介
数组和普通对象的区别:普通对象是使用字符串作为属性名的,而数组是使用数字来作为索引操作元素的
索引:从0开始的整数就是索引
数组的存储性能比普通对象要好,在开发中经常用数组来存储一些数据,使用typeof检查一个数组时,会返回object
语法:(向数组中添加元素)
数组[索引]=值
如果读取不存在的索引,则会返回undefined
对于连续的数组,使用length可以获取到数组的长度(元素的个数)
对于非连续的数组,使用length可以获取到数组的最大索引+1
尽量不要创建非连续的数组
修改length
- 若大于原长度,则多出部分空出来
- 若小于原长度,则多出部分会被删除
向数组的最后一个位置添加元素:数组[数组.length]=值
数组字面量
使用数组字面量来创建数组
语法: [ ];var arr=[ ];
使用字面量创建数组时,可以在创建时就指定数组的元素
- 使用构造函数创建数组时,也可以同时添加元素,将要添加的元素作为构造函数的参数传递
- 元素之间使用逗号隔开
- 数组中的元素可以时任何的数据类型,也可以是对象,包括函数,数组
数组的四个方法
-
push()
该方法可以向数组中添加一个或多个元素,并返回数组新的长度
可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到数组的末尾 -
pop()
该方法可以删除数组中的最后一个元素 -
unshift()
向数组开头添加一个或多个元素,并且返回新的长度
向前插入元素以后,其他元素的索引会依次调整 -
shift()
可以删除数组中的第一个元素,并将被删除的元素作为返回值返回
数组的遍历
所谓遍历数组就是将所有的元素都取出来
格式:for (var i=0;i<arr length;i++)
forEach
一般使用for循环遍历数组,js中还提供forEach()来遍历数组
- 只支持IE8以上版本的浏览器使用
- forEach()方法需要一个函数作为参数
- 有自己创建却不由自己调用的函数称为回调函数
- 数组中有几个元素执行几次(由浏览器调用),每次执行时,浏览器会将遍历到的元素以实参的形式传递进来,可以来定义形参来读取这些内容
- 浏览器会在回调函数中传递三个参数
第一个参数:是当前正在遍历的元素:value
第二个参数:当前正在遍历的元素的索引:index
第三个参数:正在遍历的数组:obj
slice和splice
slice()
-
可以从数组中提取指定元素,该方法不会改变原数组,而是将截取道德元素封装到一个新的数组中返回
-
参数:
1.截取开始位置索