博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript编程思想:纯函数
阅读量:7193 次
发布时间:2019-06-29

本文共 813 字,大约阅读时间需要 2 分钟。

什么是纯函数?

1. 唯一结果

let xs = [1,2,3,4,5]// 纯函数xs.slice(0,3) //[1,2,3]xs.slice(0,3) //[1,2,3]xs.slice(0,3) //[1,2,3]// 不纯函数xs.splice(0,3) //[1,2,3]xs.splice(0,3) //[4,5]xs.splice(0,3) //[]

将一个函数反复执行,其中的值已经被改变了,从而影响后面的函数操作。一个纯函数是无论什么输入,都只对应输出一个唯一值。

2. 不接受外部状态

var min = 21;// 不纯函数var ckeck = function(age){    return age >= min;}// 纯函数var check = function(age){    var min = 21;    return age >= min;}

3. 更清晰的表达

一个优秀的纯函数应该具有可移植性/自文档化,即通过输入内容,就可以看出函数的意图。

// 不纯的var signUp = function(attrs){    一些副作用操作}// 纯的var signUp = function(Db, Email, attrs){    return function(){        ...一些副作用操作    }}

优点:没有副作用

副作用指,在进行操作的时候,更改了原有数据的形态,从而影响了数据的纯洁性,对于此类数据应该放置在return里面。

副作用

  1. 更改文件系统
  2. 往数据库插入记录
  3. 发送一个 http 请求
  4. 打印/log
  5. DOM 查询

优点:可缓存性

采用memoize技术可以进行缓存。

var square = memoize(function(x){    return x*x})square(4) //16square(4) //从缓存中读取结果16

转载地址:http://rwxkm.baihongyu.com/

你可能感兴趣的文章
ECMall如何支持SSL连接邮件服务器的配置
查看>>
敏捷软件开发要点【转载】
查看>>
ubuntu apache2 虚拟主机服务
查看>>
Workflow_工作流的基本概念(概念)
查看>>
iOS开发UI篇—UITabBarController简单介绍
查看>>
我眼里的正则表达式(入门)
查看>>
ORACLE优化器RBO与CBO介绍总结
查看>>
为在韶大痛苦而不能用手机、Pad等上网的同志造福!
查看>>
Android蓝牙操作笔记
查看>>
SimpleAdapter和AutoCompleteTextView配合使用
查看>>
用GridLayout实现计算器的布局
查看>>
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET(转)
查看>>
DIOCP开源项目-DIOCP3重写笔记-1
查看>>
[Z]Win下网络磁盘映射的几种简单方法
查看>>
【KPC】关于为什么不用Zepto而用JQuery
查看>>
Unity3D脚本中文系列教程(十)
查看>>
PYTHON线程知识再研习D---可重入锁
查看>>
Genome2D编译方法
查看>>
第39周五
查看>>
插入排序---直接插入排序算法(Javascript版)
查看>>