前端同学都了解什么是副作用么?

原文链接:https://note.noxussj.top/?source=helloworld


什么是副作用?

副作用会让一个函数变的不纯,纯函数是根据相同的输入返回相同的输出,如果函数依赖于外部的状态就无法保证输出相同,就会带来副作用。

副作用来源

函数依赖外部状态(变量),但是副作用不可能完全禁止,尽可能控制在它们可控范围内发生。

缺点

  • 副作用使得方法通用性下降不适合扩展和可重用性
  • 副作用给程序中带来安全隐患和不稳定性

基础案例

没有副作用的函数,纯函数

1function checkAge(age) { 2 const xiaoming = 18 3 return age >= xiaoming 4}

存在副作用的函数,不纯的函数

1const xiaoming = 18 2 3function checkAge(age) { 4 return age >= xiaoming 5}
点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

使用 Effect Hook – React

使用EffectHook_Hook_是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性。_EffectHook_可以让你在函数组件中执行副作用操作importReact,{useState,useEffect}from'reac

React之浅拷贝与深拷贝

 最近发现的一个bug让我从react框架角度重新复习了一遍浅拷贝与深拷贝。浅拷贝,就是两个变量都是指向一个地址,改变了一个变量,那另一个变量也随之改变。这就是浅拷贝带来的副作用,两个变量会相互影响到,因为它们指向同一个地址。深拷贝,就是互相独立,指向的是不同的地址,一个变量改变了,另一个变量不会被影响到。react角度:父组件传给

HTTP 的幂等性

本文主要以HTTPGET、DELETE、PUT、POST四种方法为主进行语义和幂等性的介绍。一、HTTP的幂等性HTTPGET方法用于获取资源,不应有副作用,所以是幂等的。比如:GEThttp://www.bank.com/account/123456,不会改变资源的状态,不论调用一次还是N次都没有副作用。请注意,

Python Requests库介绍

Requests唯一的一个非转基因的PythonHTTP库,人类可以安全享用。警告:非专业使用其他HTTP库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。1环境准备:新建Python3.x虚拟环境mkvirtualenvPy3_

JavaScript的语法

语句和表达式语句相当于句子,表达式相当于短语,运算符则相当于标点符号和连接词。语句的结果值代码块的结果值就如同一个隐式的返回,即返回最后一个语句的结果值。表达式的副作用最常见的有副作用(也可能没有)的表达式是函数调用:functionfoo(){aa1;}var