京口新闻网

2016.8.12  星期五

函数式编程的概念与特点

函数式编程开发是程序员在学习软件开发技术的过程中需要熟练掌握的一种编程方式,而今天我们就一起来了解一下,函数式编程的概念与特点。函数式编程的概念与特点1、函数式编程函数式编程在JavaScript世界里已经成为一个很火的话题。仅仅几年前,只有很少的JavaScript开发者知道函数式编程。但是过去三年我见过的各个大项目的基础代码都深入使用了函数式编程的想法。函数式编程式是由纯函数、局部声明、变量所组成的构建过程。函数式编程是声明式而不是命令式,应用程序状态流经整个函数。不同于面向对象编程的应用状态在对象和成员函数里共享。函数式编程是一种基于一些基本的、明确的规则构建软件的编程规则。其他一些编程规则包括面向对象和面向过程式编程。函数式代码往往比命令式或面向对象的代码更简洁、更可预测、更容易测试-但是如果你不熟悉它和与之相关的常见模式,函数式代码也可以看起来更加密集、而且相关文献对于新手来说是更不可读。如果你开始使用Google函数式编程的术语,那么你将很快遇到学术语言的一堵砖墙,这对初学者来说可能非常吓人。简单的说它有一个学习曲线是对其严重的低估。但是,如果你已经在JavaScript中编程了一段时间,那么这是很好的机会在实际的软件中使用很多函数式编程概念和实用程序。2、共享状态共享状态是存在于共享作用域中的任何变量,对象或内存空间,或作为对象的属性在范围之间传递。共享范围可以包括全局范围或闭包范围。通常,在面向对象编程中,通过向其他对象添加属性,让对象在范围之间共享。3、Immutability不可变性不可变对象是指创建后不能修改的对象。相反,可变对象是任何可以在创建后被修改的对象。不变性是函数式编程的核心概念,因为没有它,程序中的数据流是有损的。状态记录被废弃了,奇怪的错误可出现在你的软件中。在JavaScript中,不要混淆const与不可变性。创建变量名绑定,在创建后不能重新分配。const创建的变量名的绑定,该变量在创建之后不能被重新赋值。const并不能创建不可变对象。你不能更改绑定引用的对象,但你仍然可以更改对象的属性,这意味着使用const创建的绑定是可变的,而不是不可变的。4、副作用副作用是指当调用函数时,除了返回函数值之外,还对主调用函数产生附加的影响。副作用包括:修改任何外部变量或对象属性(例如,全局变量或父函数范围链中的变量)登录到控制台写入屏幕写文件写入网络触发任何外部过程调用具有副作用的任何其他功能函数式编程主要避免副作用,使程序的效果更容易理解,并且更容易测试。5、通过高层函数实现的可重用性函数式编程倾向于重用一组通用的实用函数程序来处理数据。面向对象编程倾向于将对象中的方法和数据进行聚合。这些聚合的方法只能根据他们在设计的数据类型进行操作,通常只能针对包含在特定对象实例中的数据。在函数式编程中,任何类型的数据都是平等的。相同的map()实用程序可以映射到对象、字符串、数字或任何其他数据类型,因为它将函数作为处理给定数据类型的参数。FP使用类似通用的机制来规避类似问题。JavaScript具有一流的函数,它允许我们将函数视为数据-将它们分配给变量,传递给其他函数,从函数返回它们等等...【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。