箭头函数相当于其他语言的Lambda表达式或闭包语法, 是一种对普通函数的简化写法
语法格式如下:
(param1,param2,...,paramN)=> { statements }
相当于如下函数:
function (param1,param2,...,paramN) {
statements ;
}
省略方式:
- 如果执行体只有一条return语句, 允许省略return关键词和花括号:
(param1,param2,...,paramN)=> result;
//等同于:
//(param1,param2,...,paramN)=>{return result;}
- 如果形参列表只有一个参数, 允许省略圆括号
- 如果不需要形参,圆括号不能省略,必须写空括号()
注意:
箭头函数与普通函数并不完全相等, 箭头函数并没有自己的this关键字,
对于普通函数的this指创建的对象, 直接调用的普通函数this代表window
那箭头函数中的this指的是谁呢?
箭头函数的this指的是上下文, 也就是包含箭头函数的外层函数, 如果箭头函数定义在全局范围内this指window本身
箭头函数不允许在形参列表和箭头之间换行,否则报语法错误
箭头函数与其他运算符在一起时, 可能由于解析顺序导致错误, 因而与其他运算符在一起时应该把箭头函数整体放在圆括号里
箭头函数的引入有两个方面的作用:
-
更简短的函数书写,
-
对 this的词法解析。