js匿名函数也被叫做lambda函数,匿名函数顾名思义就是没有名字(隐藏名字)的函数,这就得联系到定义函数的知识了,定义函数的方式一般被分为两种:函数声明和函数表达式,而函数表达式在使用的时候绝大多数情况下就是匿名函数。
//函数声明 函数申明的关键特点是函数声明提升,即可以先使用后申明 JS引擎会先读取函数声明,然后再执行代码
function a(){
......
}
//函数表达式 匿名函数表达式即创建一个(未命名)函数再把它赋值给一个变量 不可先使用后申明
const a = function (){
......
}
//(lambda函数)匿名函数 真正意义上的匿名函数事实上是函数表达式的等号右边部分的函数,但在绝大时候我们所说的lambda 是lambda表达式 也就是匿名函数表达式
//匿名函数也是可以单独使用的
(function(){
......
})
//当然你这样写无法执行 将他变成立即执行函数就好啦
(function(who){
console.log(who)
})('is me')
而在es6的箭头函数出现后,lambda表达式就成了开发时的必备技能了
//例如
let max = (a,b) => a>b?a:b;
//等于
let max = function (a,b){
return a>b?a:b;
}
当然最主要的原因也是因为这个方便了我们使用一些回调函数
//例如
[1,2,3].reduce((a,b)=>a+b)//6
[1,2,3].map(a=>a*2)//2,4,6
...
而在使用箭头函数的时候也要注意this的指向问题哦!