- 解构赋值
- 扩展运算符
Array.from()- 属性的遍历
- 对象新增的方法
1、解构赋值
概念:解构赋值主要是针对于数组和对象的:真是项目中,一般常用于把服务器获取的json数据进行快速解构,赋值给对应的变量,帮助我们快速那拿到对应的结果
1.1数组解构赋值
- 例一:给数组赋值
let arr=[10,20,30,40];
//把arr数组的赋值
let [a,b,c,d]=arr;
console.log(a,b,c,d); //10,20,30,30
- 例二:获取一个值或者最后一个值
let arr=[10,20,30,40];
let [a,,,b]=arr;
console.log(a,b); //10 40
- 例三:获取一个值
let arr=[10,20,30,40];
let [a]=arr;
console.log(a); //10
- 例四:获取最后一个值
let arr=[10,20,30,40];
let [a]=arr.reverse();
console.log(a); //40
- 例五:赋值默认值
let arr=[10,20,30,40];
let [a,b=0]=arr;
console.log(a,b=0);
- 例六:a/b互换值
//第一种方法
let a=10;
b=20;
let c=a;
a=b;
b=c;
console.log(a,b); //20,10
//第二种方法
let a=10,
b=20;
[b,a]=[10,20]; //20,10
1.2对象解构赋值
对象解构赋值:创建的变量名需要和属性名保持一致
<script>
let obj={
id:1,
name:'我爱学习',
age:10
}
let{
id,
name,
sex
}=obj;
console.log(id,name,sex); //1 我爱学习" undefined
</script>
let data=[{
id:1,
name:'珠峰培训'
},{
id:2,
name:'周啸天'
}]
let str=``;
data.forEach(({
id,name
})=>{
str+=`<div>
<span>${id}</span>
<span>${name}</span>
</div>`
})
2、扩展运算符
- 1.扩展运算符
let [...arr]=[10,20,30,40]; - 2.剩余运算符 函数的形参赋值上
//剩余运算符
<script>
/*...运算符 */
let fn=(n,...m)=>{
// 箭头函数中没有arguments
console.log(n,m);
}
fn(10,20,30,40)
</script>
- 3.展开运算符 展开数组或者对象中的每一项
// 数组克隆(展开运算符)
let arr1=[10,20,30]
let arr2=[...arr1];
fn.call(obj,...arr1); //fn(10,20,30)
3、Array.from()
-
Array.from()把一个类数组集合(set集合)转换为数组 -
Array.of把一组值转换为数组Es5中Array常用的一个方法:Array.isArray()验证是否伪数组
Array.prototype新增的方法
new Array(3).fill(null)创建集合长度为3,每一项都填充为nullflat()数组扁平化find/findIdex=>数组的遍历迭代方法forEach/map/filter/find/some/every/reduce...
4、属性的遍历
ES6一共有5种方法可以遍历对象的属性
1.for...in
for...in循环遍历对象自身的和继承的可枚举(不含symbol属性)
2.Object.keys(obj)
Object.keys返回一个数组,包括对象自身属性(不含symbol属性)的键名
5、对象新增的方法
Object.assign([obj1],[obj2])合并对象,把[obj2]的信息替换[obj1]Object.create()创建一个空对象,让其__proto__指向objObject.defineProperty([obj],[key],[options])监听一个对象某个属性的处理操作Object.entries([obj])获取一个对象的所有的键值对Object.keys([obj])Object.values([obj])Object.freeze([obj])冻结对象,让其所有操作都不能进行