- 深拷贝:对目标的值一同复制,与目标形成互不相关的关系
- 实现深拷贝:
- 使用stringify反序列化,然后通过JSON.Prase复原;
- 使用第三方库lodash、Jquery;
- 递归。
- 浅拷贝:只复制引用而为复制真正的值,故将浅拷贝后的值修改,那么被拷贝的值也随之变化
- 函数arguments:函数内部动态参数(函数的默认参数为undefind),箭头函数没有aeguments
- 链式操作:在对象的方法种返回自身对象,返回的对象继续调用里面的方法(promise就是链式调用)
- Promise
- Promise防止了回调地狱,将其变成了链式调用
- 是构造函数,自身有all、reject、resolve等方法,原型上有then、catch等方法
- Promise.then通常用于调接口
- Promose.all和await效果相同,谁跑的慢,以谁执行为准,all接受一个数组参数,里面的值队中都算返回promise对象
- 迭代器:具有next()方法的对象
- 扩展运算符和剩余运算符(...)
- 数组扩展就是...arr,对象就是...obj;
- 剩余运算符代替了以前函数的arguments
- 构造函数:创建对象的一种写法,所以需要new一下
- 解构赋值
- 对象:无需通过属性名获取对象里的属性值,可通过相同的属性名获取即可,例如a={girl:’zxt’},通过属性名获取为girl=a.girl;而解构为{girl}=a;对多个赋值进行了简便;
- 数组:a=[1,2,3],可通过下标一一获取val=a[0],数组解构赋值的原理就是消耗数组的迭代器,就是[val]=a,如果是多个,那就是[val1,val2]=a,解决了数组交换变量的临时数组问题
- async..await..:将异步操作变成了同步操作