描述
用于合并两个或者多个数组,此方法不会改变现有数组,而是返回一个新数组
语法
let newArr=arr.concat(val1,val2,val3)
细节
1 .concat合并数组和es6结构有啥区别
2 .数组合并的其他方法
1 .[...ArrayA,...ArrayB],append(...ArrayA),arr.splice(arr.length,...ArrayA) (这些都是和结构相关的)
2 .arr.forEach(item=>arr.push(item))
3 .如果忽略所有的value参数,则会返回一个原数组的浅拷贝
4 .concat将对象引用复制到新数组中。原始数组和新数组都是引用相同的对象。数字类型或者字符串,布尔则是将值复制到新数组中
let innerArr=[0,1]
let a=[...innerArr,3]
let b=[innerArr,3]
console.log(a)
console.log(b)
innerArr=1
console.log(a)
console.log(b)
console.log(innerArr)
let cat={name:'kitty'}
let pets=[cat]
console.log(pets)
// cat=1
// cat={work:"web"}
// 上面这俩都不行
cat.name="cat"
// 这是可以改变了
console.log(pets)
console.log(cat)
5 .这里的引用是指的里面的值,本身的数组是这么变都不会影响新数据的
6 .还要注意的是这里的引用是强引用,改变类型之后没有用
强引用
1 .JavaScript中最常见的就是声明一个变量并且将一个引用类型数据(对象)赋值给这个变量,这种情况就是强引用。只要该对象还被引用,垃圾回收机制GC就不会回收该对象或者属性。
2 .对于一个普通对象,将全部引用该对象的变量关系相应设置为null,便能等待垃圾回收机制GC回收
let obj = {
name: "江流儿",
age: 18
}
obj = null;//上面的对象等待GC垃圾回收
网友评论