一、新增字符串操作
模板字符串:
- 就是反引号的用法
- 定义比较长,复杂的字符串
- 可以插入变量
- 可以插入函数
-
二、函数新特性
-
1.函数参数默认值
注:具有默认值的参数要写到后边
2.args参数
Function fn(...args){}
可替代arguments
arguments是一个类数组对象,
args是纯数组对象
3.箭头函数
3.1 Let fn=val =>val;
//等同于
Let fn=function(val){return val;}
3.2 实现俩个数的和
Let sum=(num1,num2)=>num1+num2;
Console.log(sum(1,5));
3.3若要执行多条语句需要加花括号
3.4 作用:
简化回调函数的写法 eg arr sort((a,b)=>a-b)
箭头函数中的this是函数声明时所在的对象
三、数组新特性
1.扩展运算符
1.1相当于rest方法的逆运算,把数组转换为用逗号隔开的参数列表
1.2 function fn(x,y,z){
Console.log(x,y,z);
}
Var arr=[1,2,3];
Fn(...arr);
1.3应用
1.3.1复制数组
Var arr1=[1,2,3];
Var arr2=[...arr];
1.3.2合并数组
Var a=[1,2,3];
Var b=[4,5,6];
Var c=[7,8,9];
//ES5
Var d=a.concat(b,c);
//ES6
Var e=[...a,...b,...c];
1.3.3用于解构赋值
Let[a,b,...args]=[1,2,3,4,5]
1.3.4用于字符串
Let arr=[...”hellow”]
1.3.5适用于所有的类数组集合(实现了遍历器接口的数据类型)
2.Array构造函数新增方法
Array.from( ) 将类数组对象转换为纯数组
Array.of(a,b,c) 将参数列表返回一个数组
相当于创建数组
Arr.of(3)!=new Array(3)
3.数组对象新增方法
3.1 Find(callback) 返回数组第一个满足条件的元素
let arr=[9,16,-9,7,56];
for result=arr.find(function(val,index){
if(val>10){
return true;
}
return false
})
Let arr=[9,16,-9,7,56];
Var result=arr.find(function(val,index){
Return val>10
})
Let arr=[9,16,-9,7,56];
Ar result=arr.find(val=>val>10)
3.2 findIndex(callback) 返回数组中第一个满足条件的元素的索引
3.3 entries( ) 帮助数组遍历每一个key值与value值
Let arr=[9,16,-9,7,56]
For(let[key,value]of arr.entries( )){
Console.log(key,value);
}
3.4 keys( ) 帮助数组遍历所有的key值
3.5 includes( ) 检索数组是否包含某个值,返回布尔值
3.6 补充
Array.isArray(arr): | true |
false | |
Filter(callback): | 过滤数组单元,将满足条件的元素过滤 |
Callback==>function(value,index){ } | |
自动将每一个元素放入callback中进行处理,如果返回值为true,元素放入新数组中,否则不操作。 | |
形参value ,代表数组中的每一个值 | |
形参index,代表数组中的每一个值的下标 | |
Map(callback): | 对数组进行遍历,将计算后的值返回新数组 |
calllback同上,不返回bool,返回具体值 | |
Some(callback): | 对数组进行遍历,只要有一个满足条件,则返回true,不返回bool,返回具体值 |
Every(callback): | 对数组进行遍历,如果有一个不满足条件,则返回false,并终止遍历,否则返回true |
ForEach(callback): | 遍历数组 |
无返回值 | |
Reduce(function(preValue,nowValue,index,arrSelf){return preValue+nowValue): | 累加数组单元 |
preValue 上一个值 | |
nowValue 当前值 | |
Index 当前值下标 | |
arrSelf 当前数组 |
四、对象的新增特性
1.属性及方法的简洁表示(key名与value名相同)
Let name="ce"
Let age=18;
//ES5
Var obj1={
Name:name,
Age:age,
Run:function( ){console.log(“快速跑!”)}
}
//ES6
Var obj2={
Name,
Age,
Run( ){console.log(“快速跑!”)}
}
2.Object.js( )相当于全等但是也有区别
Object.is(1,2)
Object.is(NaN,NaN)
Object.is(0,-0)
3.Object.assign(obj1,obj2,obj3)合并对象
所有对象都会合并到obj1,如果是相同的属性,后边的对象的属性值会对前边的进行覆盖
4.Object.keys(obj)
将obj的key值返回一个纯属组
5.Object.values(obj)
将obj的value值返回一个纯属组
6.Object.entires(obj)
返回一个二维数组,每一个小数组都是一对[key,value]
五、SET数组结构
1.类似于数组,但是成员唯一,没有索引
2.var set=new Set(x) x:数组,类数组,字符串
3.实现数组去重
Let arr=[1,4,3,1,3,5,7];
Let set=new Set(arr);
//let newArr-[...set];
Let newArr=Array.from(set);
4.获取set的长度不是length而是size
5.方法:
Add(x)
Delete(x) x不是索引,而是set中的具体的值
Has(x) 验证是否存在,返回布尔值
Clear( ) 不需要参数,清除所有成员
6.可以使用for of 与forEach对set进行遍历
7.set.value( )==set.keys( ) set.entires( )