文章目录
一、格式
1.只有一个参数
function f(a){}
//只有一个参数 括号可省略
let f=a=>{};
2.无参或多个参数
let fun= function () {
return '123';
}
//无参或多个参数括号必写
let fun=()=>'123';
3.如果函数返回值为对象,使用圆括号
let fun=()=>({id:1,name:'张三'});
4.也可以不带返回值 函数体内写逻辑代码
5.使用举例:
console.log([1,2,3,4].find(item=>item%2==0)); //2
console.log([1,2,3,4].map((item,index)=>item*2)); //[2, 4, 6, 8]
console.log([1,4,2,5,3].sort((a1,a2)=>a1-a2)); // [1, 2, 3, 4, 5]
console.log([1,2,3,4].reduce((all,item)=>all+item)); //10
二、特点
1.上下文this指针一致(没有自己的this)
let obj={
sleep(){
console.log(this); //obj
setTimeout(function () {
console.log(this); //Window
},2000);
}
}
obj.sleep();
let obj={
sleep(){
console.log(this); //obj
setTimeout(()=>{
console.log(this); //obj
},2000);
}
}
obj.sleep();
2.不可以当做构造函数
不能对箭头函数使用new命令(会报错)
(也没有prototype)
3.不存在arguments对象
如果要用,用rest对象代替
4.不可以使用yield命令,因此不能用作Generator函数
5.对象中的函数 不能使用箭头函数
let o={
eat:()=>{
console.log(this);
}
}
o.eat(); //window