📜  JavaScript 中的函数式编程

📅  最后修改于: 2022-05-13 01:56:51.806000             🧑  作者: Mango

JavaScript 中的函数式编程

函数式编程(FP)与编程一样古老,但我们中的一些人认为它是最近才发现的,因为我们在数学中发现了一些部分,但在编程世界中却没有。但是现在函数式编程正在流行。几乎每一种编程语言,包括Java、 Python、 JavaScript 等都在采用函数式编程。现在看来函数式编程是主流。但是为什么每个人都专注于函数式编程。一定有什么。正确的问题是为什么要进行函数式编程?那么让我们来探索一下。

一般有两种编程方式。

命令式:通过命令式编程,我们的代码告诉编译器和用户如何执行任务。

Javascript
const arr = [1, 2, "3", "4", 5, 6, "7", 8, "9"];
  
function even(el) {
    return el % 2 === 0;
}
  
// Converting string to number in array
const arrAsNumbers = arr.map(function (el) {
    return Number(el);
});
// console.log( arrAsNumbers );
// or
// const arrAsNumbers = arr.map(Number);
// [1, 2, 3, 4, 5, 6, 7, 8, 9];
  
// Filtering even numbers
const filteredArr = arrAsNumbers.filter(function (el) {
    return even(el);
});
// or
// const filteredArr = arrAsNumbers.filter(even);
  
console.log(filteredArr);   // [ 2, 4, 6, 8 ]


HTML


  

    

  

    

  


输出:

[2, 4, 6, 8]

声明式:使用声明式编程,我们的代码告诉编译器和用户该做什么

HTML



  

    

  

    

  

输出:

[2, 4, 6, 8]

对于大多数程序员来说,命令式代码很可能比声明式代码看起来更熟悉、更易读。这是因为我们最好先学习命令式代码。但是你们中的大多数人不知道声明性代码给我们带来了什么。声明式代码有很大的好处

  1. 可读性:您知道我们开发人员在阅读代码而不是编写代码上花费了更多时间。首先,我们正在创建一个数组arrAsNumbers ,它只有 numbers 数组。其次,我们将这个数组带到filteredArray ,它只有偶数。
    与声明性代码一样,代码短小精悍,开发人员可以一次阅读。所以我们正在做的是将数组字符串值转换为数字类型。这给了我们一个新数组,我们用它来过滤偶函数。所以我们程序的输出是一个只包含偶数的数组。
    现在你必须决定你更喜欢哪一个。所以编写可读的代码是我们编程中最重要的一步。声明式代码比命令式代码更具可读性。
  2. 对此说不我们认为函数式编程最重要的好处是我们根本不必使用。为什么它对 JavaScript 开发人员如此重要。我们大多数人都不清楚或误解了这个导致更多错误的概念。 JavaScript 开发人员知道在他们的代码中使用的痛苦。
  3. 更少的错误:通过函数式编程,您将获得每个开发人员梦寐以求的巨大好处,其中之一就是一些错误。因为我们将在函数式编程中使用纯函数(为完全相同的输入提供相同输出且不包含副作用的函数)。错误应该更少。
  4. 测试:测试更容易,因为我们使用纯函数,如果我们提供完全相同的输入,则可以提供相同的输出。我们不必处理隐藏状态和副作用。
  5. 可维护性:声明式代码更易于维护,因为在函数式编程中,我们使用纯函数的函数。因为纯函数只依赖于它们的输入参数来产生它们的输出。使用纯函数进行调试要容易得多。因为我们要使用的功能是经过验证的功能或技术。由于经过验证的功能包含较少的错误并且易于维护。

下一个大问题是为什么要使用 JavaScript。可能是因为触手可及。我们都知道 JavaScript 是最流行的编程语言。也可能是因为您想同时编写客户端和服务器端代码。如果您因为想学习函数式编程而选择,那么您选择了最好的,因为 JavaScript 支持“开箱即用”的函数式编程。函数式编程的主要思想围绕函数展开。在 JavaScript 中,函数是一等公民,即值。我们可以将它作为参数传递,从函数返回,将其存储在变量中。 JavaScript 是一种非常灵活的语言。我们可以随时调用具有任意数量的任意类型的参数的函数。

关键要点是我们应该学习函数式编程,以使我们的代码更具表现力、更健壮和更易读。