展开运算符 ...
数组展开运算符:
{ // 展开运算符: 把一条数据展开了,或者把一个数组进行展开了. let arr = [1,2,3,4]; // let arr2 = ["a","b","c","d"];//想把arr里面内容放到其中的位置 let arr2 = ["a","b",...arr,"c","d"]; console.log(arr2);//["a", "b", 1, 2, 3, 4, "c", "d"] // 通过配合解构赋值 -> 剩余参数 let [a,b,...c] = arr; console.log(a,b,c);//1 2 [3, 4] }
对象展开运算符:
{ let obj = { a:1, b:2 } let obj2 = { ...obj, c:3, d:4 } console.log(obj2);//{a: 1, b: 2, c: 3, d: 4} 把obj所有内容都弄进来了! // 对象展开运算符中的剩余参数 let {a,b,...c} = obj2; console.log(a,b,c); //1 2 {c: 3, d: 4} }
对象的传址问题: 不建议对象直接进行复址,因为当另一个进行修改的时候,本来那个也是发生变化的.
{ // 关于对象的传址的问题: let obj = { a:10, b:20 } /* let obj2 = obj; obj2.a = 20; console.log(obj.a);//20; */ let obj2 = {...obj} obj2.a = 20; console.log(obj.a);//10;没有发生变化 }