箭头函式是在 ES6 后出现的一种函式表现方式,虽然也是函式的一种,但有部分的特性是跟一般函式有差异的,在面试中属于高频题,需要特别注意。
箭头函式和一般函式差异
箭头函式和一般函式的主要差异有四点,我们将在下方详细说明:
- 箭头函式语法不同、写法也较简洁
- 箭头函式没有自己的
this
、也无法直接修改this
的指向 - 箭头函式没有自己的
arguments
- 箭头函式不能作为构造函式使用
语法更为简洁
箭头函式相比于一般函式,语法相当简洁。除了少去 function
关键字,如果只有一个参数,箭头函式可以省略括号;只有一行代码,就是直接简单返回一个变数或简单的表达式,可以省略大括号和 return
。例子如下:
// ES5 一般函式
let addOne = function (n) {
return n + 1;
};
// ES6 箭头函式,参数只有一个时,参数的括号可以省略
let addOne = (n) => {
return n + 1;
};
// ES6 箭头函式,只有一行时,省略大括号和 return
let addOne = (n) => n + 1;
this 值与一般函式不同
箭头函式没有自己的 th