javascript纯函数

  • javascript纯函数

    • 1.什么是纯函数?
    • 2.例子 :

1.什么是纯函数?

一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。

用人类的话讲,纯函数的特性:
1.调用这个函数,只要我参数不变,这个函数的值始终不改变。
2.数值,对象使用这个函数,使用前后,自身的值不会发生变化,这就是指的副作用。也有人说是同输入同输出,我传入什么,掉用完,传出的就是什么。

2.例子 :

        let a = 0;const fun = (val)=>{return val + a;}let b = 1;console.log(fun(b))  // 1a=1console.log(fun(b))  // 2   

这个例子就不是一个纯函数,因为当a的值发生改变,函数输出的结果改变了,它不符合纯函数的第一条特性。

const a = 1
const foo = (obj, b) => {obj.x = 2return obj.x + b
}
const counter = { x: 1 }
foo(counter, 2) // => 4
counter.x // => 2

同样的道理这个例子虽然没有其它变量干扰函数的返回值,但是counter.x的值在调用函数之后发生了变化。

再举个正确的例子吧,下面函数便是一个纯函数!

         let fun = (val) =>{console.log(typeof(val))if(typeof(val)==='number'){return val *val;}else{return 0;}}console.log(fun(2))  // 4

生活不易,如果觉得这篇文章帮助到你了,给小编个鼓励吧!

javascript的纯函数相关推荐

  1. JavaScript 数组纯函数

    1. 常用的数组 API forEach 遍历所有元素,item 对应的是元素的值,index 对应的是元素的位置 let arr = [4, 6, 8]; arr.forEach(function( ...

  2. 【Javascript】纯函数

    纯函数是一类特别的函数: 只要是同样的输入(实参),必定得到同样的输出(返回) 纯函数的特点: 它没有改变原来参数的值 它没有修改外部的变量和数据 每次调用时传递相同的值,返回的结果永远一样 必须遵守 ...

  3. JavaScript函数式编程之深入理解纯函数

    更多相关内容见博客 https://github.com/zhuanyongxigua/blog 纯函数是函数式编程的基础,需要重点理解. 纯函数的概念: 纯函数是这样一种函数,即相同的输入,永远会得 ...

  4. 在javascript中使用纯函数处理副作用

    在javascript中使用纯函数处理副作用 今天给大家带来一片译文, 详情请点击这里.可能在墙内哦 开始了, 如果你点开这篇文章, 就证明你已经开始涉及函数式编程了, 这距离你知道纯函数的概念不会很 ...

  5. JavaScript函数式编程(纯函数、柯里化以及组合函数)

    JavaScript函数式编程(纯函数.柯里化以及组合函数) 目录 JavaScript函数式编程(纯函数.柯里化以及组合函数) 前言 1.纯函数 1.1.纯函数的概念 1.2.副作用 1.3.纯函数 ...

  6. JavaScript中的纯函数是什么?

    Pure functions are the atomic building blocks in functional programming. They are adored for their s ...

  7. javascript 中的纯函数

    纯函数 引言 对于函数,大家都不陌生,但是对于纯函数可能有些生疏.我们在写函数的时候,会肆无忌惮,充分的利用js的一些特性,比如使用作用域去修改外部变量,对象属性,数据结构等.这样写如果稍不注意,可能 ...

  8. react中纯函数_如何在纯React中创建电子邮件芯片

    react中纯函数 by Andreas Remdt 由Andreas Remdt 如何在纯React中创建电子邮件芯片 (How to create email chips in pure Reac ...

  9. java 函数式编程 示例_功能Java示例 第8部分–更多纯函数

    java 函数式编程 示例 这是第8部分,该系列的最后一部分称为"示例功能Java". 我在本系列的每个部分中开发的示例是某种"提要处理程序",用于处理文档. ...

最新文章

  1. 送餐机器人市场达11.6亿 美团将成“搅局者”?
  2. pbfunc外部扩展函数_从外部CorDapp扩展和覆盖流
  3. codeforces 337D Book of Evil(dp)
  4. 【网站建设】简单一行代码,为网站开启深色模式支持
  5. 兵乓球- 经典街机游戏-python小游戏源码下载
  6. mysql代码提示_聊一聊 php 代码提示
  7. Leetcode143. 重排链表 (golang描述)
  8. 左右方块消除html5,html5消除方块游戏总结-对象
  9. 安装到到setup support files时,SQL2008安装程序自动消失掉。
  10. win10服务器文件夹显示不全,Win10系统文件/文件夹图标显示不正常的解决方法
  11. 在伦敦生活工作-2(由于本人懒惰的关系,这篇估计是最后一篇了,呵呵)
  12. Wireshark-----抓包分析
  13. android中edittext属性
  14. 毕业半年,买了一台MacBook Pro
  15. 数据结构之堆(Heap)及其用途
  16. 微机原理与接口技术(第6版)第六章习题1、3、10、13
  17. 【漏洞学习——越权】Mtime时光网越权查看订单
  18. gsoap linux 编译,gSOAP嵌入式linux下的移植与程序开发
  19. MySQL:常用的MySQL优化工具
  20. 【苹果推信】imessage苹果推软件安装挑选掀开CSR文件

热门文章

  1. Java常见的5种线程池
  2. 学习一下360浏览器的插件开发
  3. (亲测,十分方便!)win10下 配置python编辑器Geany配置
  4. python 散点图 置信区间_python 置信区间
  5. 论文阅读-Relational Triple Extraction: One Step is Enough- IJCAI 2021
  6. 计算机配置时间怎么查,电脑怎么查看系统安装日期 查询电脑系统安装日期及系统运行时间的方法...
  7. 通过DeviceIoControl获取U盘或移动硬盘的出品商、制造商和版本号等信息
  8. 解读10月24日区块链讲话:区块链的国家思维-1
  9. pandas入门: 时间字符串转换为年月日
  10. gradle配置和使用