什么是箭头函数
- 箭头函数表达式的语法比函数更加简洁。它没有自己的this,arguments,super或new.target。箭头函数表达式更适用需要匿名函数的地方,并且不能用作构造函数
var getCurrentDate = function (){
return new Date();
}
const getCurrentDat = () => new Date();
- 在本例中,ES5版本中有function(){}声明和return关键字,这两个关键字分别是创建函数和返回值所需要的。
- 在箭头函数版本中,只需要()括号,不需要return语句,不需要return语句
- 如果只有表达式或许需要返回,箭头函数就会有一个隐式的返回
funtction greet(name){
return 'Hello ' + name + '!';
}
const greet = (name) => 'Hello ${name}';
const greet2 = name => 'Hello ${name}';
- 可以在箭头函数中使用与函数表达式和函数声明相同的参数。一个箭头函数中又一个参数,则可以省略括号。
const getArgs = () => arguments
const getArgs2 = (...rest) => rest
- 箭头函数不能arguments对象。调用第一个getArgs函数会抛出一个错误。相反,我可以使用rest参数来获取在箭头函数中传递的所有参数。
const data = {
result: 0,
nums: [1,2,3,4,5],
computerResult() {
const addAll = () => {
return this.nums.reduce((total,cur) => total + cur , 0)
};
this.result = addAll()
}
};
- 箭头函数没有this值。它捕获词法作用域函数的this值
- 在此示例中,addAll函数将复制computerResult方法中的this值,如果在全局作用域声明箭头函数,则this为当前对象。