ES6中常用方法记录及展示:
filter()方法用于一组数组中筛选出符合要求的内容;
map()方法给数组中的每一个元素特殊处理后返回新的数组;
数组中用来判断条件的用some和every:
. every 依次拿出数组中元素做比较如果一个是假的就返回假,.some同做比较,不过有一个是真的就返回真
reduce方法用于计算处理返回一个结果,默认状态下第一次返回的结果就是第一个元素,结果等于最后一次的返回结果
reduce方法有四个参数第一个参数prev上一次操作返回的结果、第二个item,第三个index当前要处理元素和索引、第四个arr当前处理的数组;
reduce方法小案例展示:
<script type="text/javascript">
//数组求和
let arr1=["我","爱","中","国"]
let result=arr1.reduce((prev,item)=>{
return prev+item;//第一次返回“我”,第二次的prev就为“我”再拼接“爱”,依次到最后拼接完成
})
console.log(result);
//数组去重
let arr2=[1,2,3,7,5,6,1,2,4,6];
let result2=arr2.reduce((prev,item)=>{
if(!prev.includes(item)){
prev.push(item);
}
return prev;
},[]);
console.log(result2);
//计算数组中元素出现次数
let result3=arr2.reduce((prev,item)=>{
if(item in prev){
prev[item]++;
}else{
prev[item]=1;
}
return prev
},{})
console.log(result3);
</script>
.repeat()重复字符串,返回一个新字符串。
.includes()是否包含指定内容返回true或false。
.startWith()是否以指定字符开头;endWith是否以指定内容结尾。
.trim()清除前后空格符。
ES6新增数据类型:
map类型对对象类型一种加强,在原始Js中对象的属性key只能为字符串格式;map类型可以将其他的数据类型作为key 。//在ES6更新后也可使用其他格式作为key ,所以map类型不常用;
map 对象中用变量作为key 值,需要用set方法,获取使用get方法。
symbol类型:创建一个独一无二的值,防止出现命名冲突问题,可以作为对象的key
class来创建类:
class来实现继承:A extends B A继承B super函数对应父级的构造函数
//class创建类
class People{
constructor(name="张三",age=16) {//可以有默认值
this.name=name;
this.age=age;
}
show(){
console.log(this.name);
}
}
let p1=new People();
let p2=new People("tom",21);
p2.show();
//实现继承
class Student extends People{
constructor(name,age,score) {
super(name,age);//super对应父级构造函数 super写在最上面,this写在super后面
this.score=score;
}
show(){
console.log(this.name+this.score);//可以重写父级方法
}
}
let s1=new Student("mik","19",0);
console.log(s1);
s1.show();
class的静态属性及静态方法:通过类直接使用或获取的属性及方法;
class People{
static size=0; //static关键字 静态属性
constructor(name="张三",age=16) {
this.name=name;
this.age=age;
People.size++;//size是类的静态方法通过类来调用
}
}
let p1=new People("tom",14);
let p2=new People("mik",15);
let p3=new People("jack",16);
let p4=new People("pac",17);
console.log(People.size);//计算通过类创建了几次对象