es6之箭头函数

=> 箭头函数是ES6增加的函数表达式。将function关键字和函数名都删掉,并使用“=>”连接参数列表和函数体(低版本浏览器不支持)

箭头函数看上去只是语法的变动,其实也影响了this的作用域

1、无参数时候必须有括号

let fn = function(){
    return 'helloWorld';
}
//简写为:
let fn = ()=>{  //但是没有参数时,括号不可以省略
    return 'helloWorld';
}
//根据规则二,简写为:
let fn = ()=>'helloWorld';

2、当函数只有一个参数时括号可以省略

let fn = function(a){
    return a;
}

//简写为:
let fn = (a)=>{
    return a;
}
//根据规则一,还可以简写为:
let fn = a=>{
    return a;
}
//根据规则二,还可以简写为:
let fn = a=>a;

3、有多个参数必须写括号

let fn = function(a,b){
    return a+b;
}
//简写为:
let fn = (a,b)=>{   //多于一个参数,圆括号不可省略
    return a+b;
}
//根据规则二,还可以简写为:
let fn = (a,b)=>a+b;

4、函数体{}中只有一行return语句时,大括号及return 可以省略。等同于return 运算结果

//一行

let fn = (a) => a;  //return a

let fn = (a) => {
    return a;
}; 
 

使用箭头函数需要注意的有以下几点:

1)箭头函数不可以使用new(不能当做构造函数),否则报错

2)用了箭头函数,this就不是指向window,而是父级(指向是可变的)

3)不可以使用arguments,该对象在函数体内不存在。如果用,rest 参数来代替

4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数

 

posted @ 2018-11-11 20:05  紫诺花开  阅读(385)  评论(0编辑  收藏  举报