javascript的纯函数
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的纯函数相关推荐
- JavaScript 数组纯函数
1. 常用的数组 API forEach 遍历所有元素,item 对应的是元素的值,index 对应的是元素的位置 let arr = [4, 6, 8]; arr.forEach(function( ...
- 【Javascript】纯函数
纯函数是一类特别的函数: 只要是同样的输入(实参),必定得到同样的输出(返回) 纯函数的特点: 它没有改变原来参数的值 它没有修改外部的变量和数据 每次调用时传递相同的值,返回的结果永远一样 必须遵守 ...
- JavaScript函数式编程之深入理解纯函数
更多相关内容见博客 https://github.com/zhuanyongxigua/blog 纯函数是函数式编程的基础,需要重点理解. 纯函数的概念: 纯函数是这样一种函数,即相同的输入,永远会得 ...
- 在javascript中使用纯函数处理副作用
在javascript中使用纯函数处理副作用 今天给大家带来一片译文, 详情请点击这里.可能在墙内哦 开始了, 如果你点开这篇文章, 就证明你已经开始涉及函数式编程了, 这距离你知道纯函数的概念不会很 ...
- JavaScript函数式编程(纯函数、柯里化以及组合函数)
JavaScript函数式编程(纯函数.柯里化以及组合函数) 目录 JavaScript函数式编程(纯函数.柯里化以及组合函数) 前言 1.纯函数 1.1.纯函数的概念 1.2.副作用 1.3.纯函数 ...
- JavaScript中的纯函数是什么?
Pure functions are the atomic building blocks in functional programming. They are adored for their s ...
- javascript 中的纯函数
纯函数 引言 对于函数,大家都不陌生,但是对于纯函数可能有些生疏.我们在写函数的时候,会肆无忌惮,充分的利用js的一些特性,比如使用作用域去修改外部变量,对象属性,数据结构等.这样写如果稍不注意,可能 ...
- react中纯函数_如何在纯React中创建电子邮件芯片
react中纯函数 by Andreas Remdt 由Andreas Remdt 如何在纯React中创建电子邮件芯片 (How to create email chips in pure Reac ...
- java 函数式编程 示例_功能Java示例 第8部分–更多纯函数
java 函数式编程 示例 这是第8部分,该系列的最后一部分称为"示例功能Java". 我在本系列的每个部分中开发的示例是某种"提要处理程序",用于处理文档. ...
最新文章
- 送餐机器人市场达11.6亿 美团将成“搅局者”?
- pbfunc外部扩展函数_从外部CorDapp扩展和覆盖流
- codeforces 337D Book of Evil(dp)
- 【网站建设】简单一行代码,为网站开启深色模式支持
- 兵乓球- 经典街机游戏-python小游戏源码下载
- mysql代码提示_聊一聊 php 代码提示
- Leetcode143. 重排链表 (golang描述)
- 左右方块消除html5,html5消除方块游戏总结-对象
- 安装到到setup support files时,SQL2008安装程序自动消失掉。
- win10服务器文件夹显示不全,Win10系统文件/文件夹图标显示不正常的解决方法
- 在伦敦生活工作-2(由于本人懒惰的关系,这篇估计是最后一篇了,呵呵)
- Wireshark-----抓包分析
- android中edittext属性
- 毕业半年,买了一台MacBook Pro
- 数据结构之堆(Heap)及其用途
- 微机原理与接口技术(第6版)第六章习题1、3、10、13
- 【漏洞学习——越权】Mtime时光网越权查看订单
- gsoap linux 编译,gSOAP嵌入式linux下的移植与程序开发
- MySQL:常用的MySQL优化工具
- 【苹果推信】imessage苹果推软件安装挑选掀开CSR文件
热门文章
- Java常见的5种线程池
- 学习一下360浏览器的插件开发
- (亲测,十分方便!)win10下 配置python编辑器Geany配置
- python 散点图 置信区间_python 置信区间
- 论文阅读-Relational Triple Extraction: One Step is Enough- IJCAI 2021
- 计算机配置时间怎么查,电脑怎么查看系统安装日期 查询电脑系统安装日期及系统运行时间的方法...
- 通过DeviceIoControl获取U盘或移动硬盘的出品商、制造商和版本号等信息
- 解读10月24日区块链讲话:区块链的国家思维-1
- pandas入门: 时间字符串转换为年月日
- gradle配置和使用