数组操作解析:
var arr = [1, 3, 5, 7, 4];
brr=arr; //简单类型存储的是值本身,复杂类型存储的是地址,
//如果把第一个对象赋值给另一个变量,此时两个变量会指向同一个对象。
//如果修改对象里面的键值对,对应的变量都会改变
arr[6] = "w";//如果下标是已经存在的,那赋值操作就是修改数组元素的值,如果下标是不存在,那赋值操作就给数组添加元素。
console.log(arr,brr)//arr= [1, 3, 5, 7, 4, empty, "w"]; brr= [1, 3, 5, 7, 4, empty, "w"];
var crr=arr.reverse()//反转数组,返回新数组
var drr=brr.concat(crr);
console.log(drr) //["w", empty, 4, 7, 5, 3, 1, "w", empty, 4, 7, 5, 3, 1]
上面例子中涉及了数组操作的两个知识点:
1,数组的存储空间(栈内存和堆内存,有时间再整理,两者的区别),在这里只是简单的理解。简单类型传递值,复杂类型传递地址。如果把第一个对象赋值给另一个变量,此时两个变量会指向同一个对象。如果修改对象里面的键值对,对应的变量都会改变
2,数组基本操作。
push : 从后面添加元素,返回新数组的length。
pop: 从数组的后面删除元素,返回删除的那个元素。
unshift:从数组的前面的添加元素,返回新数组的长度。
shift: 从数组的最前面删除元素,返回删除的那个元素。
splice: 数组任意地方删除或者添加元素。
concat: 数组合并,不会影响原来的数组,会返回一个新数组。
sort: 数组的排序 ,默认按照 字母/首字符顺序排序 。
reverse:翻转数组。
join(分隔符): 将数组的值拼接成字符串,并且返回字符串。