什么是函数的副作用——明白js编程中函数的副作用

访客4年前黑客资讯833

什么是函数副作用?

函数副作用是指当挪用函数时,除了返回函数值之外,还对主挪用函数发生附加的影响。副作用的函数不仅仅只是返回了一个值,而且还做了其他的事情,好比:

1、修改了一个变量
2、直接修改数据结构
3、设置一个工具的成员
4、抛出一个异常或以一个错误终止
5、打印到终端或读取用户输入
6、读取或写入一个文件
7、在屏幕上绘图


函数副作用会给程序设计带来不必要的贫苦,给程序带来十分难以查找的错误,而且降低程序的可读性,严酷的函数式语言要求函数必须无副作用。   


纯函数 ( Pure Function ) 

输入输出数据流全是显式(Explicit)的。 显式(Explicit)的意思是,函数与外界交流数据只有一个唯一渠道——参数和返回值。函数从函数外部接受的所有输入信息都通过参数通报到该函数内部。函数输出到函数外部的所有信息都通过返回值通报到该函数外部。

 

非纯函数 ( Impure Function ) 

与之相反。 隐式(Implicit)的意思是,函数通过参数和返回值以外的渠道,和外界举行数据交流。好比读取/修改全局变量,都叫作以隐式的方式和外界举行数据交流。

 

引用透明 ( Referential Transparent ) 

引用透明的观点与函数的副作用相关,且受其影响。 若是程序中两个相同值得表达式能在该程序的任何地方相互替换,而不影响程序的动作,那么该程序就具有引用透明性。它的优点是比非引用透明的语言的语义更容易明白,不那么艰涩。纯函数式语言没有变量,以是它们都具有引用透明性。 


以下示例说明晰引用透明与函数副作用的连系,代码如下:

result1 = (fun(a) + b) / (fun(a) -c); 
temp = fun(a); 
result2 = (temp + b) / (temp -c);


相关文章

(福利)关于做“黑客”相关词单站快速排名的方法教程

 本人做"黑客"行业也有一段时间了,基本上相关词都在首页,做这些词以来网站也挺苛刻的,不是同行被刷点击、ddos就是被镜像,还有希望攻击我的那位小伙伴可以消停会儿,因为一些个人原因,网站准备整体改版,...

立冬和冬至的区别?立冬和冬至是一天吗

立冬和冬至的区别?立冬和冬至是一天吗

冻笔新诗懒写, 寒炉美酒时温。 醉看墨花月白, 恍疑雪满前村。 ——李白《立冬》 立冬,冬三月之始,太阳黄经225度。《孝经纬》曰:“斗指乾,为立冬,冬者,终也,万物皆收藏也。”立,建始也,...

兔子吃什么(科学喂养原则是怎么样)

兔子吃什么(科学喂养原则是怎么样)

兔子最爱吃什么草,兔子的食物其实很简单,一般的兔子最爱吃的食物就是干草,比如苜蓿草、提摩西草等草类。不过也有一些兔子是比较挑食的,现在家养的宠物兔还会给它们喂食兔粮,或者是一些蔬果,其实这些也是兔子爱...

华为手机如何做黑客(华为手机如何做黑客入侵)

华为手机如何做黑客(华为手机如何做黑客入侵)

本文目录一览: 1、普通手机怎么变成黑客系统? 2、怎样让华为手机进入病毒模式 3、荣耀手机怎么进入黑客模式? 普通手机怎么变成黑客系统? 普通手机变成黑客手机顷做绝的方法:首先第一雀姿种是...

谷歌Chrome浏览器6月市场占有率突破20%

互联网数据统计分析企业StatCounter数据信息显示信息,GoogleChrome浏览器市场份额已超出20%,而微软公司IE电脑浏览器6月份市场占有率则下降至44%。 综合性新闻媒体7月1日...

黑客网站找人,网络黑客是指什么

黑客网站找人,网络黑客是指什么

一、网站找人黑客接单流程 1、接单黑客作为黑客,你必须有基本的愿望来解决这个问题。网站找人网络是指什么现在,互联网已经发展起来,我们不能及时询问网民或同行。XXX网站找人帝国全剧情解析一般用什么电脑黑...