值传递操作的是原始数据的副本。(将实参的值拷贝给函数或方法,在函数内对形参进行操作,操作的对象是实参的拷贝,对实参本身没有影响,在函数结束返回后,形参被丢弃释放,实参的内容不会被改变)
地址传递操作的是实参。(函数内对形参进行操作,等同于对实参进行相同的操作,在函数调用结束返回后,形参被释放,实参的内容是对形参进行操作后的结果。)
array.keys实际获取的是数组的下标。
- 数组的属性:
1,length:获取或者设置数组的长度
获取格式:数组名称.length(小于原有数组的长度,等于将数组前半部分截取)
设置格式:数组名称.length = 新的长度(大于原有的长度,表示将数组的长度进行扩展)
- 数组的方法:
1,unshift方法
作用:在数组头部添加元素
格式:数组名.unshift(值1,值2,值3);
返回值:新的数组长度
2,shift方法
作用:删除数组的头部元素
格式:数组.shift();
返回值:被删除元素
3,join方法
作用:给数组元素之间加分隔符
eg,join();这样默认添加逗号分隔符
join("*");
join("");这样数组元素会拼接起来
4,indexOf方法
作用:在数组中查找指定的值,如果有则返回其下标,没有返回-1
注意:默认操作时,从前向后查找,找到时候停止查找;
格式:数组名称.indexOf(要查找的值,查找的起始位置),如果省略起始位置则表示从头开始查找
5,lastIndexOf方法
作用,格式,注意:同上
不同点:lastIndexOf是从后面朝前查找
6,slice方法
格式:数组名称.slice(begin,end);(截取时不包含end对应的值,不写end表示从begin一直截取到最后)
参数说明:begin:表示截取的起始位置的下标
end:表示截取的终止位置的下标
7,reduce方法
作用:reduce()方法接受一个函数作为累加器,数组中的每首个值从左到右进行缩减,最终计算为一个值。
格式:数组.reduce(function(prev ,currentvalue,currentindex,arr){
return prev + currentvalue;
},你可以这里传入一个初始值,第一次调用回调函数的时候,有初始值时,prev就是这个初始值,没有设置初始值时,默认情况下prev的值为
数组的第一个函数);
8,reduceRight
和reduce基本相同,只是从右向左拼接