JAVASCRIPT函数式编程

news/2024/9/17 16:21:41

1.匿名函数
我们将首先介绍匿名函数。一个匿名函数就是一个没有名字的函数。
你可以认为他们是一次性函数。当你只需要用一次某个函数式,他们就特别有用。通过使用匿名函数,没有必要把函数一直放在内存中,所以使用匿名函数更加有效率。

例Example:

下面两个函数处理同样的事情,而average在给z赋值结束之后一直保留——但匿名函数则不会。

clipboard.png
2.函数作为值

clipboard.png
从这里可以得出一个结论,函数是一个值就像字符串、数字或数组一样。这还出现几个问题:

我是否可以把函数作为参数传递?
可以,见下面的例子。
是否可以实时生成函数?
当然了,这是一个高级的主题,它可以通过eval函数来完成。
例:

这个例子演示了如何把函数作为参数传递。

clipboard.png
3.两种方式调用函数
在JavaScript中,有两种调用函数的方式。一般的方式是把参数放在括号中,如alert(42)。另一种方式是同时把函数和参数都放在括号中,如(alert)(42)。
例:
alert(42);
(alert) (42);
(function(x) { alert(x-13); }) (55);
为什么函数两边的括号很重要:如果你写了括号,那么在括号中的代码就会被先计算。在计算之后,括号所在的地方就会有一个值。这个值可能是一个字符串、一个数字或一个函数。
4.“短路”条件调用
现在我们将学习如何使用“短路”条件调用。使用这个方法可以缩短源代码同时代码也变得更加可读。

例:这个语法并不是用在左表达式上,而是用在右表达式上。

var f = false; var t = true;
var z;
if(f)

z = 4;

else if(t)

z = 2;

alert(z);

var f = false; var t = true;
var z = (f&&4)||(t&&2);
alert(z);
好处:
1.它有助于写出模块化和可服用的代码。
2.它对事件处理程序非常有效。
3.它很有趣!


http://lihuaxi.xjx100.cn/news/242642.html

相关文章

Openstack组件实现原理 — Keystone认证功能

前言Keystone实现始终围绕着Keystone所实现的功能来展开,所以在理解其实现之前,建议大家尝试通过安装Keystone这一个过程来感受Keystone在Openstack架构中所充当的角色。下面给出了Keystone-M的安装过程。Keystone安装列表Openstack组件部署 — Overview…

java hanoi_Hanoi问题java解法

用什么语言解法都差不多,思路都是一样,递归,这其中只要注重于开始和结果的状态就可以了,对于中间过程,并不需要深究。(我细细思考了一下,还是算了。_)代码其实很简单注重的是思路。问题描述:有一…

参加UI培训就业多长时间

​ UI设计在近几年的发展前景是非常好的,越来越多的人都想要学习UI设计,目前大家比较想了解的是参加UI培训就业多长时间?来看看下面的详细介绍。 参加UI培训就业多长时间? 如今市面上的UI设计培训机构很多,选择一个口碑好靠谱的培训机构学习…

如何使用VB编写Excel的COM组件

1 新建工程中选择"外接程序",点击打开之后右侧的属性窗口即显示为MyAddIn工程。(注意如果你使用的是VB精简版的没有"外接程序"的选项,请下载完整版的) 2 右击MyAddIn,点击MyAddIn属性,…

bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理*

bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理 题意: n头牛,d种疾病,每头牛都患一些疾病,现在要求选出最多的牛,使这些牛患病的种类数不超过k。n≤1000,d≤15 题解: 状压dp。f[i][S]表…

java实现redis缓存_java实现redis缓存功能

一、安装redis1.mac安装,如果有安装brew 可以直接快捷安装:brew install redis2.linux下载安装wget http://download.redis.io/releases/redis-2.8.17.tar.gztar xzf redis-2.8.17.tar.gzcd redis-2.8.17make二、redis常用命令redis-cli // 进入命令行/u…

哪些人适合到Python培训机构学习

​ 时代在不断的发展,大数据时代促进了人工智能的发展,越来越多的数据需要通过Python技术来处理,学习Python编程语言,是大家走入编程世界的理想选择之一。不过每个人都有自己的出路,并不是每一个人都适合编程&#xff…

jQuery - 当当网我的订单页

<!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>当当网我的订单页</title><link type"text/css" rel"stylesheet" href"css/dangdang.css"><script typ…