JavaScript学习笔记——函数 Part5:函数表达式、匿名函数-让代码更简洁

本文探讨了JavaScript中的函数核心,强调了匿名函数和函数表达式的使用。通过学习,你可以提升JavaScript表达能力并掌握常见编码习惯。文章指出,当函数仅需一次性使用时,使用匿名函数能简化代码,提高效率。例如,将匿名函数作为setTimeout的参数,避免了额外的函数声明。函数表达式的结果是函数引用,因此可在需要函数的地方直接使用。总结来说,合理运用匿名函数可以使代码更加紧凑且易于维护。

本章将再进一步,深入函数的核心,从而娴熟地使用函数。
学习了匿名函数,你的JavaScript表达能力将大大提升
还将介绍一些与函数相关的常见编码习惯和约定,为与人协作编写代码或使用开源JavaScript库作好准备

要点

  • 函数表达式的结果是一个函数引用
  • 在可以使用函数引用的任何地方,都可使用函数表达式:可将函数表达式传递给函数,还可从函数返回函数表达式。
  • 匿名函数没有名称的函数表达式。使用匿名函数可让代码更简洁。
  • 函数声明创建的函数是在执行其他代码前定义的;
    函数表达式是在运行阶段与其他代码一起执行的,因此在函数表达式所在的语句执行前,它创建的函数是未定义的。

匿名函数

函数声明有正规、说明性的一面

  • 用函数声明定义函数时,必须给它指定名称;

函数表达式有更宽松、表达力更强的一面:匿名性(anonymous)

通过函数表达式可以创建匿名函数

  • 函数表达式的结果是一个函数引用
  • 这样创建的函数没有名称,称为匿名函数

匿名函数的优点在于:使用匿名函数,可让代码更简洁精练,意图更清晰,效率更高,甚至更易于维护(虽然初学时会觉得这样使代码更难阅读和理解)


下面从一个例子看匿名函数有什么好处:

虽然现在已经能够将函数赋给变量、能够将函数传递给函数、也能从函数返回函数,但我们使用函数的方式还是太啰嗦

//创建一个名为timeupAlarm的函数,其函数引用存储在变量timeupAlarm中
function timeupAlarm(){
	alert("Time up!");
};

//将变量timeupAlarm(其值为函数引用)传递给setTimeout
setTimeout(timeupAlarm,5000);

这里的代码中,timeupAlarm这个变量有些多余:它对应的函数只会被执行一次(这个函数是“一次性”的,仅用于传递给setTimeout,而没有其他用途


更简洁的写法如下:

setTimeout( function(){alert("Time up!");}, 5000);

为何可以直接将timeupAlarm换成一个函数表达式?
因为函数表达式的结果是一个函数引用,因此在任何需要函数引用的地方,都可以使用函数表达式

  • 在这里,实参需要为一个函数引用,故可以在实参的位置填入函数表达式
  • 同理,若需要从函数返回一个函数,也可以return一个函数表达式

总结:如果某个函数在代码中从头到尾只被使用一次,那么没有必要创建[用于存储函数引用]的变量,而可以使用匿名函数(用函数表达式创建),使代码更紧凑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值