ES6入门读书笔记二
- 解构赋值
解构赋值,我自己的理解就是把等式右边对应位置上的值赋值给左边位置上对应位置的变量
,但是注意右边一定要是一个对象,非对象类型如 null undefined等会报错,
同时想那些基本数据类型的也会报错,报不能迭代的错误。
//数组的解构赋值
let arr=[10,12,13];
let [a,b,c]=arr;
console.log(a);
console.log(b);
console.log(c);
//如果参数不一致
let [d,e,f,g]=[1,2,3];
console.log(d,e,f,g);//g没有,返回undefined
let [test1,test2]=[1,2,3]
console.log(test1,test2);//1 2
//特殊情况测试
let[test]=[]
console.log(test);//undefined
// let [test3]=null//报错,不是一个对象
// console.log(test3);
// let [test4]=undefined
// console.log(test4);//报错,undefined不是一个对象
/*let [fa]=NaN
console.log(fa);// NaN is not iterable*/
//参数展开(最后一个参数必须包含在参数展开式当中)
let [sam,...tom]=[1,22,25,23,21]
console.log(sam);
console.log(...tom);
let {aa,bb}={aa:1,bb:2}
console.log(aa, bb);
//如果没有返回undefined
- 模板字符串
我的理解在一对``里面,用${}的形式,将变量放到这对花括号里面
let sam="xu";
console.log(`你好呀,${sam}!`);
- 箭头函数
和以前的函数基本大概差不多,在形式上简写了很多东西
/* function add(a,b) {
return a+b;
}
console.log(add(45, 55));//100*/
add=(a,b)=>a+b;
console.log(add(33,22));
test=v=>v
console.log(test(3));
show=()=>({a:2,b:3})//这里面简写的话,必须带上一个括号
console.log(show());
//有一个参数,或者return一条语句的时候,可以进行简写
箭头函数this指向的问题
/* //箭头函数里面的this绑定的是定义所在的对象,而不是使用所在的对象
let test={
a:15,
b:17,
show:function () {
console.log(this);//普通函数,this指向test
console.log(this.a + this.b);
}
}
// test.show();
//普通函数的this会改变
document.οnclick=test.show//这时候指向的就是document*/
let test={
a:15,
b:17,
show:()=>{
console.log(this);//普通函数,this指向test
}
}
document.onclick=test.show
//换成箭头函数后,this指向不变,就是test这个对象所定义的环境,也就是window,而不是刚才使用的环境document
//他是不变的
箭头函数不能动态创建(使用new)
箭头函数没有arguments对象
- map set reduce filter foreach
/* let x=new Map();
a={b:"hello"}//a是一个对象,也可以作为一个键
x.set(a,"你好")
console.log(x.get(a));*/
//采用new方法创建的对象是两个在不同内存当中的对象
let y=new Map()
y.set({a:4},11)
console.log(y.get({a: 4}));//返回undefined
//遍历
let arr=[14,15,64,62,31]
let ans=arr.map((item)=>item>20)
console.log(ans);
//reduce 累加器
arr.reduce((tmp,item,index)=>{
console.log(`第${index}次:${tmp }+${item}`);
return tmp+item;
})
//filter
console.log(arr.filter((item) => item & 1));
//set
arr.forEach((item,index)=>{
console.log(`第${index}元素是${item}`);
})
let s=new Set([1,2,3])//传入一个数组
s.add(1)
console.log(s);
s.has(1)
console.log(s.has(1));
说明:重要的必须要掌握的知识需要掌握,一些不重要的需要在工作中,再行查阅。