箭头函数:
用法:var a=()=> 5;var b=(sum1,sum2)=> sum1+sum2//多行代码var c=(sum1,sum2)=>{sum1=sum1+1;sum2=sum2+2;return sum1+sum2}//返回对象var d=id=>({ id:id, name:'jack',})//与变量解构结合使用var e=({id:‘001’,name:‘jack’})=>id+' '+name
用处:简化回调、有利于封装回调(注意点1会讲)
[0,1,2,3].map(i=>i*10)注意点:
1:箭头函数函数体内的this指向的是定义该箭头函数时所在的对象,而不是使用时所在的对象例如:function test(){ setTimeout(()=>{console.log{this.id}},1000)}var id='1'test.call({id:'2'})//输出结果为2(此时this指向test,如果不是箭头函数的话,this指向的是window)ps:箭头函数的this指向固化是因为箭头函数本身没有this,*所以也就不能用作构造函数,就不能通过new来创建。* 正因为箭头函数的this指向固化(指向定义该函数的对象),所以有利于封装回调函数
2:箭头函数里面没有arguments
function test(){ setTimeout(()=>{console.log(arguments)},1000)}test(1,2)//此时输出[1,2]
3 不可以使用yield命令