基本语法
- 基本形式:() => {}
- ():参数。如果函数只有一个参数的时候,可以直接写参数名,省略括号。如果函数没有参数,直接使用小括号。
- => :定义箭头函数符号。
- {}:函数体。如果只有一条表达式,可省略花括号,表示返回表达式结果。
- 基本使用
let add = (a, b) => {
return a + b;
};
// 或者
let add = (a, b) => a + b;
// 等价于
let add = function(a, b) {
return a + b;
};
let func = a => -a;
// 等价于
let func = function (a) {
return -a;
};
let getValue = () => 5;
//等价于
let getValue = function() {
return 5
};
箭头函数与传统函数区别
-
没有 this,super,arguments 以及 new.target 绑定 这些绑定由最近一层非箭头函数决定。
-
不能通过 new 关键字调用 箭头函数没有
Construct
方法,所以不能被用作构造函数。
-
没有原型 由于不能通过 new 关键字调用函数,因而没有构建原型的需求,所以箭头函数内部也不会存在 prototype 属性。
-
不可改变 this 绑定 this 的值与最近一层非箭头函数的生命周期始终保持一致。
-
不支持 arguments 对象 由于 arguments 对象是由最近一层非箭头函数决定,箭头函数没有 arguments 绑定,所以不可以通过 arguments 对象访问箭头函数参数,只能通过命名参数和不定参数这两种形式访问函数的参数。
-
不支持重复的命名参数 无论在严格还是非严格模式下,箭头函数都不支持重复的命名参数,而传统函数只有在严格模式下才不支持重复的命名参数。