es6展开运算符
2024-08-25 00:01:00
数组的展开合并
现在有两个数组[1, 2, 3, 4]和[5, 6, 7],想要将两个函数拼接成一个新的函数。
//es5的写法
let arr1 = [1, 2, 3, 4];
let arr2 = [5, 6, 7];
let arr = arr1.concat(arr2);
console.log(arr)//[ 1, 2, 3, 4, 5, 6, 7 ]
//es6的写法
let arr = [...arr1, ...arr2];
console.log(arr)//[ 1, 2, 3, 4, 5, 6, 7 ]
对象的展开合并
现在有两个对象,一个是{name:'sam'}一个是{age:8} 想要将两个对象合并。
//es5 中的合并
let obj1 = { name: '张三' }
let obj2 = { age: 9 };
let obj = {}
Object.assign(obj, obj1, obj2)
console.log(obj)//{ name: '张三', age: 9 }
//es6 中的合并
let obj1 = { name: '张三' }
let obj2 = { age: 9 };
let obj = { ...obj1, ...obj2 }
console.log(obj)//{ name: '张三', age: 9 }
展开运算符是浅拷贝
浅拷贝的值在改变原来对象内容的时候也会影响新的对象值的变化。
let obj1 = { name: {name:'张三'} }
let obj2 = { age: 9 };
let obj = { ...obj1, ...obj2 }
obj1.name.name='李硕';
console.log(obj)//{ name: { name: '李硕' }, age: 9 }
如果要想查看实现深拷贝的方法,请移步我的另一篇随笔:https://www.cnblogs.com/hanqingtao/p/9915886.html
最新文章
- IOS第13天(1,私人通讯录,登陆功能,界面的跳转传值,自定义cell,编辑界面)
- openpgp和gnupg
- [改善Java代码]不要让类型默默转换
- DBMS_SCHEDULER and DBMS_JOB
- 微信开发第4章 通过accesstoken获取用户标签管理
- InstallShield 创建自己的Dialog
- TCP header
- PAT (Advanced Level) 1105. Spiral Matrix (25)
- index.js:13 Uncaught TypeError: Cannot read property 'split' of undefined
- 如何在Shell中快速切换目录
- 麻省理工18年春软件构造课程阅读02“Java基础”
- java 需要准备的知识(转摘)
- ubuntu批量更改文件权限
- ajax入门基础
- Kali linux Nessus &;Cracking Password
- tf.transpose()的用法
- .NET Core开发日志——结构化日志
- js 操作dom
- Android之循环显示图像的Android Gallery组件
- @Dataprovider 和 @Factory 的使用
热门文章
- Jmeter_Beanshell_使用Java处理JSON块(转)
- python大战机器学习——集成学习
- 028 Implement strStr() 实现 strStr()
- poj3233(矩阵快速幂的和)
- leetcode--Learn one iterative inorder traversal, apply it to multiple tree questions (Java Solution)
- opencv——IplImage结构
- Visual Studio 使用
- <;Linux系统uname命令用法>;
- AngularJS(十):依赖注入
- Linux系统 Centos7/Centos6.8 yum命令在线安装 MySQL5.6