当前位置: 首页 > 编程笔记 >

JavaScript中的纯函数是什么?

殷轶
2023-03-14
本文向大家介绍JavaScript中的纯函数是什么?,包括了JavaScript中的纯函数是什么?的使用技巧和注意事项,需要的朋友参考一下

纯功能

纯函数是一个 确定性函数。这意味着每次传递相同的输入时,该函数将返回相同的输出。用数学术语来说,它只是一个定义明确的函数。

一个纯函数具有以下特性

  • 它仅取决于自己的论点。

  • 它不会尝试将变量更改为超出其范围。

  • 它不会产生任何副作用。

以下示例不是纯函数, 因为该函数依赖于其范围之外的变量(val1和val2),而不是依赖于其自身的变量。

示例

<html>
<body>
<script>
   let val1 = 6;
   let val2 = 4;
   function pure() {
      return val1 * val2;
   }
   document.write(pure());
</script>
</body>
</html>

输出

24


在下面的示例中,该函数即使依赖于其自身的参数,也依赖于某些外部变量(val)。所以它不是一个纯函数。 

示例

<html>
<body>
<script>
   function pure(arg) {
      let val = 100;
      return val* arg;
   }
   document.write(pure(2));
</script>
</body>
</html>

输出

200


下面的示例显示一个纯函数,因为该函数执行其任务时不涉及外部变量。将相同的参数传递给该函数时,该函数返回相同的输出 

示例

<html>
<body>
   <script>
      function pure(arg) {
         return 4 * arg;
      }
      document.write(pure(2));
   </script>
</body>
</html>

输出

8
 类似资料:
  • 本文向大家介绍你知道什么是纯函数吗?相关面试题,主要包含被问及你知道什么是纯函数吗?时的应答技巧和注意事项,需要的朋友参考一下 纯函数是个计算机术语,这点与语言无关。 纯函数的特征是确定了输入就一定可以确定输出,并且无副作用。 举例子 ,我们在Redux设计模式下,reducer就是一个个的纯函数,我们只是根据参数,按照规则创建新的state,对于老的state,我们只消费,不修改。

  • 我已经阅读了ReactJs官方文档中纯Javascript函数和非纯Javascript函数的定义。 纯函数是不尝试更改其输入的函数,并且总是为相同的输入返回相同的结果。 实例 不纯函数是改变自身输入的函数。 实例

  • 本文向大家介绍什么是JavaScript中的匿名函数?,包括了什么是JavaScript中的匿名函数?的使用技巧和注意事项,需要的朋友参考一下 函数表达式与函数声明相似,并且具有与函数声明相同的语法。可以定义“命名”函数表达式(例如,在调用堆栈中可能使用表达式的名称)或“匿名”函数表达式。 匿名函数表达式的示例(未使用名称)- 可以使用引用该函数的变量名来调用此函数- 总之,匿名函数是未存储但与变

  • 本文向大家介绍什么是JavaScript中的函数链接?,包括了什么是JavaScript中的函数链接?的使用技巧和注意事项,需要的朋友参考一下 功能链 函数链接不过是使用点表示法将函数分组在一行中而已。这种类型的链接使代码非常简洁,并提高了性能。在这里,我们将学习使用常规对象进行函数链接。 a)没有功能链  在以下示例中的对象“OBJ”被创建并在该对象中的公共属性 称为“I”是使用关键字创建“这个

  • 本文向大家介绍为什么要用纯函数?相关面试题,主要包含被问及为什么要用纯函数?时的应答技巧和注意事项,需要的朋友参考一下 在此之前要先了解什么是纯函数,简单来说纯函数的定义有两个: 1.返回的结果只依赖于传入的参数。 2.执行过程中不产生副作用。 在这里就需要了解到什么是副作用 1.改变了外部变量或者对象属性 2.触发任何外部进程 3.发送http请求 4.调用其他有副作用的函数 5.…… 那么我们

  • 问题内容: 寻找JavaScript 中 阶乘 函数的真正快速实现。有什么建议吗? 问题答案: 您可以[搜索(1 …100)!在WolframAlpha上预先计算阶乘序列。 前100个数字是: 如果仍要自己计算值,则可以使用备忘录: 编辑:21.08.2014 解决方案2 我认为添加一个 懒惰的* 迭代 阶乘函数 的工作示例将很有用,该 函数 使用 大数 来获得带有 备忘录的 准确 结果,并将 缓