箭头函数
1.使用=>来定义 function(){} 等于()=>{}
简便方法:
let add = (a, b) => {
return a, b;
}
等价于
let add=(a,b)=>(a,b)
2. 箭头函数是用来简化函数定义语法的
const fn = () => {
console.log(123)
}
fn();
在箭头函数中 如果函数体中只有一句代码 并且代码的执行结果就是函数的返回值 函数体大括号可以省略
const sum = (n1, n2) => n1 + n2;
const result = sum(10, 20);
console.log(result)
在箭头函数中 如果形参只有一个 形参外侧的小括号也是可以省略的
const fn = v => {
alert(v);
}
fn(20)
3.可以默认形参赋值
function add(a = 10, b = 20) {
}
可以直接对形参赋默认值
4.默认的表达式也可以是一个函数
function add(a = getVal(5)) {
return a;
}
function getVal(val) {
return val + 5;
}
add() //10
5.关于this指向问题:
箭头函数的注意事项:
1.使用箭头函数,函数内部没有arguments
2.箭头函数不能使用new关键字来实例化对象
function函数是对象,但是箭头函数不是一个对象,是一个语法槽
// 箭头函数不绑定this 箭头函数没有自己的this关键字 如果在箭头函数中使用this this关键字将指向箭头函数定义位置中的this
function fn() {
console.log(this);
return () => {
console.log(this)
}
}
const obj = { name: 'zhangsan' };
const resFn = fn.call(obj);
resFn();