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