函数有两种
function f1() {
return 10
}
let f2 = function() {
return 11
}
箭头函数其实是函数表达式的简写形式
- 箭头函数没有自己的this,this是捕获上下文的this
- 箭头函数没有自己的arguments,es6的剩余参数 rest代替arguments
- 箭头函数没有自己的实例化对象,也就没有自己的原型
- 箭头函数不可以使用call apply bind,因为没有自己的this,也就不存在该变this
- 箭头函数不能new 不能做构造函数
- 箭头函数没有yield属性,不能做为生成器Generator使用
- 箭头函数其实是函数表达式的简写形式,没有函数提升
箭头函数简化函数的语法糖的写法方式
// 普通的写法0
let fun0 = function() {
return 10
}
// 箭头函数的写法0
let fun0 = () => 10
// 普通的写法1
let fun1 = function(x) {
return x
}
// 箭头函数的写法1
let fun1 = (x) => x
如果只有一个参数,还可以这样写
let fun1 = x=> x;
let fun2 = (x,y) => x + y
// 普通的写法2
let fun2 = function(x,y) {
return x + y
}
// 箭头函数的写法2
let fun3 = (x,y) => x + y
// 普通的写法3
let fun4 = function(x,y) {
return {x,y}
}
// 箭头函数的写法3
let fun4 = (x,y) => ({x,y}) // 返回的是个对象需要用括号括起来