js中声明函数的方式越来越多了,ES6新增的lambda语法形式,可以使用旁箭头声明函数
(题外话:最早接触lambda是在c#中,感觉c#真的是一门好语言,可惜.NET平台不给力!)
言归正传,箭头函数的语法如下:
param=>expression
也就是
参数=>表达式(函数体)
具体说明参见下图(图引用与《javascript忍者秘籍》)
重点就两点
- 如果函数的参数就一个,可以不使用(),否则就要使用,哪怕没有参数,也要又一个空括号
- 函数体如果只有一行,则不需要{},而且表达式的值会自动return;如果函数体不止一行代码,则需要使用{}包含起来,并且需要使用return关键字返回表达式的值,如果没有return,则此函数的返回值就是undifined
下面通过几个案例,加深对箭头函数的理解和使用
案例1:
var f1=function(name,age){
return ("name:"+name+",age:"+age);
}
console.log(f1('yhb',29));
//使用箭头函数
var f2=(name,age)=>"name:"+name+",age:"+age;
console.log(f2('yhb',20));
案例2:
var values=[3,2,5,0,4,8,7];
values.sort((value1,value2)=>value1-value2);
console.log(values);
案例3:
var element=document.getElementById('div1');
element.addEventListener('click',()=>element.textContent='hello');
总结:
通过上面的案例课件,箭头函数的主要应用为替换前面讲到的函数表达式,也就是我们常说的匿名函数