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

访客4年前黑客资讯790

什么是函数副作用?

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

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);


相关文章

商务包月价格预约

戏精上身,大前天明天一年前昨天今天一个星期前一个月前明天一年前昨天在线预约了一个“美院校花兼职商务依照预订的服务要出来用餐学好。来源于贵阳市的那位漂亮小姐姐现场帮我演出起了民族舞蹈。 联系方式城市:...

祛痘小窍门?怎么去痘痘最快最有效

祛痘小窍门?怎么去痘痘最快最有效

告别痘痘肌你需要这些窍门,不管是男性还是女性肯定都遇到过痘痘爆发的问题,一旦出现爆痘的问题严重影响我们的个人形象,有些情况比较严重的人群因为久治不愈还是出现有些心理问题。在对抗痘痘的过程当中我们需要掌...

广州外圈女商务经纪人qq号-【孙雪倩】

“广州外圈女商务经纪人qq号-【孙雪倩】” 西安伴游陪游旅行网agentnemo,西安伴游网agentnemo的详细资料体重:150kg学历:高中天津waiwei女网站致力于打造最专业的中国天津w...

专业黑客服务网,找部从小就是黑客高手的电影,黑客怎么远程找ip地址

'DB_NAME' => '".$_POST['db_name']', //数据库名 制造并传达的Hook007类样本HASH数量到达17万个,相关恶意代码云查询阻拦次数到达1.3亿次,相...

今日台风(近日台风)

今天没有台风!最近的台风就是今年的26号台风“玉兔”,10月30日凌晨4时40分在菲律宾吕宋岛东北部沿海登陆,11月3日凌晨2时在南海东北部海面减弱为热带。 台风是形成于北半球的热带气旋。热带气旋的形...

黑客电脑运行代码大全(电脑装黑客代码)

黑客电脑运行代码大全(电脑装黑客代码)

什么叫js代码 JS编码便是JavaScript撰写的脚本文件的编码。用独立文档储存,拓展名叫.JS JS即Javascript,Javascript是一种由Netscape的LiveScript发展...