剩余运算符(...)
1. 数组
语法 :
... 剩余运算符 是一种我们方便获取数据的方式
<script>
// 1. 数组
// const arr = ['a', 'b', 'c', 'd']
// const [letter1, letter2] = arr
// console.log(letter1,letter2);
// letter1 = 'a' letter2 = 'b'
// 希望可以获取到 剩下的所有 元素 都放在新数组里
// 语法 ... 剩余运算符 是一种我们方便获取数据的方式
// const [letter1, letter2, ...list] = arr
// console.log(list);
// list = ['c', 'd']
// 如果全部取出来 则返回的是空对象
// const [letter1, letter2, letter3, letter4, ...list] = arr // null
</script>
2. 对象
<script>
// 1. 对象
const obj = { a: 1, b: 2, c: 3 };
// 对象也是全取出来为 null 对象
const { a, ...newObj } = obj;
console.log(newObj);
// {b:2 c:3}
</script>
3.函数形参
<script>
// 需求: 封装一个函数 然后取到一个数组内的所有数值
// calc();
calc(1, 2);
// calc(1, 2, 3);
function calc(...params){
// params 可以获取到所有 传递给 clac 的参数 封装到一个数组中
console.log(params); // 1. 2
// 对数组做什么业务 都可以 计算总和 计算 最大值max 最小值min
}
</script>
4.引用类型复制
1.值类型和数据类型区别
js数据类型 分成了两种 1 值类型 2 引用类型
-
值类型 简单数据类型 字符串、数字、布尔类型、
引用类型 对象 、 数组
-
两者区别 体现 =
值类型 使用 = 复制
引用类型 使用 = 关联在一起
<script>
// let a =1 ;
// let b = a;
// // b a 的一份复制 两个值 一样 但是两个数据是完全独立!
// b=10;
// // a 不会发生变化
// console.log(a);
const obj = { username: '悟空' };
// 也使用 =
const newObj = obj; // newObj 看起来和 obj 数据一样 两个数据 本身一起! 修改了其中的任意一个,另外一个也会收到影响
newObj.username = '八戒';
console.log(obj);
</script>
2.复制引用类型-剩余运算符
介绍
修改新的数据之后 旧的数据 不要收到影响
代码
<script>
// 复制一份 对象 , 修改新的数据之后 旧的数据 不要收到影响
// const obj = { username: '悟空', height: 100 };
// // const newObj=obj;
// const newObj = { ...obj };
// // const newObj = { username:"悟空",height:100 };
// newObj.username = '八戒';
// console.log(obj);
const list = ['a', 'b'];
// const newList = list; //
const newList = [...list];
newList.push('c');
console.log(list);
</script>
3.为什么const常量看见别人修改
释义
我们只是修改其中的值,并不是直接对他的常亮进行修改
<script>
// 修改 等于号
// let a = 1;
// a = 2; // 修改
// const b = 3;
// b = 4; // 修改
// const obj = { a: 1 };
// obj.a = 2;
const list = ['a', 'b'];
// list.push('c');
// console.log(list);
// list[2]='c';
list = 1;
</script>