【我的前端】面向 JavaScript 开发:前端必学的4种函数式编程技术

简介: 函数式编程技术是现代 Wed 开发中的热门话题。这一切都是关于将应用程序框架设计为简单功能的组合,一边写更多可扩展的代码。

【我的前端】面向 JavaScript 开发:前端必学的4种函数

函数式编程技术是现代 Wed 开发中的热门话题。这一切都是关于将应用程序框架设计为简单功能的组合,一边写更多可扩展的代码。它允许您简单的交换任何功能而不会破坏程序的另一部分,并且更容易理解和调试程序。

在本文中我们将讨论7种可用于 JavaScript 的函数式编程技术,让您更好地了解如何在Web开发项目中应用函数式编程。

1、纯函数

如果我们发送相同的参数,纯函数会返回相同的结果。他们只是返回他们的操作结果,不看范围之外的任何东西。除了返回他们的返回值之外,纯函数不会影响任何东西。

const helloworld = (name) => 'Hi ${name}';
helloworld('Piumi');

副作用是函数式编程中的一个概念,当当一个函数不尽返回一个值,而且在后台更该组件时,它就会发生,当一个函数执行时,它有可能修改一些东西。最好减少副作用。这就是纯函数的一个优点,因为它的副作用很小。

2、避免程序循环

纯函数式编程的一个显著特征是不变性。您将不得不抛弃标准的循环方法,例如for、while和do-while,以避免在变量初始化后发生变异(例如循环计数器)。相反,JavaScript提供了诸如map、filter、reduce和foreach等高阶函数抽象迭代过程。

我在这里分别为foreach、map、filter和reduce各举一个例子:

foreach:为数组中的每一个元素调用一个函数。

let sum = 0;
const numbers = [10, 25, 73, 84];
numbers.forEach(addNumbers);
function addNumbers(numbers) {
    sum += numbers;
}

map:每个数组项映射到一个函数,函数调用的返回值帮助我们创建一个新数组,映射器函数将数组项作为输入并返回输出。

array.map(mapper)

filter:根据条件过滤数组。在这种情况下,条件是一个函数,它获取数组中的每个元素并决定是否保存它,并且返回真实的布尔值。

array.map(condition);

reduce:将数组减少为单个值的函数。

array.map(reduce);

3、函数链

在JavaScript中,函数链接是一种允许在同一对象上按照顺序调用多个函数的模式。我们可以使用这种技术使用相同的对象调用多个函数,它是代码更具可读性,并减少了冗余代码的数量。

var obj = {
    output: 0,
    addNumber: function (p, q) {
        this.output = p + q;
        return this;
    },
    multiplyNumber: function (p){
        this.output = this.output * p;
        return this;
    } 
};
obj.addNumber(10, 20).multiplyNumber(10)
console.log(obj.output)

在上面的代码示例中,由于addNumber函数反映了当前的obj对象,因此返回值包含了附加的函数。我们在同一对象运行第二个函数multiplyNumber以便于它们链接在一起。

4、Currying

Currying是将多参数函数分解为一元(单参数)高阶函数序列的过程。

function fsum (a, b) { 
    return a + b
}
// Currying functions
function fsum_curry (a, b) {
    return function(b){
        return a + b
    }
}
fsum(10, 2) // 12
fsum_curry(10)(2) // 12

这里柯里化的好处是记忆。我们现在可以记住函数调用中的某些参数,以便以后重用他们,而无需复制和重新计算。

结论

函数式编程在JavaScript开发人员中越来越流行,因为它简化了复杂应用程序的实用,是它们更具可读性。

相关文章
|
14天前
|
前端开发 JavaScript 关系型数据库
从前端到后端:构建现代化Web应用的技术探索
在当今互联网时代,Web应用的开发已成为了各行各业不可或缺的一部分。从前端到后端,这篇文章将带你深入探索如何构建现代化的Web应用。我们将介绍多种技术,包括前端开发、后端开发以及各种编程语言(如Java、Python、C、PHP、Go)和数据库,帮助你了解如何利用这些技术构建出高效、安全和可扩展的Web应用。
|
18天前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
37 5
|
20天前
|
前端开发 编解码 数据格式
浅谈响应式编程在企业级前端应用 UI 开发中的实践
浅谈响应式编程在企业级前端应用 UI 开发中的实践
20 0
浅谈响应式编程在企业级前端应用 UI 开发中的实践
|
29天前
|
开发框架 JavaScript 安全
js开发:请解释什么是Express框架,以及它在项目中的作用。
Express是Node.js的Web开发框架,简化路由管理,支持HTTP请求处理。它采用中间件系统增强功能,如日志和错误处理,集成多种模板引擎(EJS、Jade、Pug)用于HTML渲染,并提供安全中间件提升应用安全性。其可扩展性允许选用合适插件扩展功能,加速开发进程。
|
30天前
|
缓存 JavaScript 前端开发
js开发:请解释什么是Webpack,以及它在项目中的作用。
Webpack是开源的JavaScript模块打包器,用于前端项目构建,整合并优化JavaScript、CSS、图片等资源。它实现模块打包、代码分割以提升加载速度,同时进行资源优化和缓存。借助插件机制扩展功能,并支持热更新,加速开发流程。
20 4
|
30天前
|
缓存 JavaScript 数据安全/隐私保护
js开发:请解释什么是ES6的Proxy,以及它的用途。
`ES6`的`Proxy`对象用于创建一个代理,能拦截并自定义目标对象的访问和操作,应用于数据绑定、访问控制、函数调用的拦截与修改以及异步操作处理。
17 3
|
1天前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。
|
8天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
10天前
|
前端开发 算法 JavaScript
如何优化前端性能:探索图片压缩与延迟加载技术
本文深入探讨了前端性能优化中的关键问题:图片压缩与延迟加载技术。通过介绍图片压缩的原理和方法,并结合实例说明了如何有效减少图片大小、提升加载速度;同时,详细解析了延迟加载技术的实现原理及其在提高页面加载性能中的作用,为前端开发者提供了实用的优化方案。
|
11天前
|
小程序 前端开发 JavaScript
小程序全栈开发:前端与后端的完美结合
【4月更文挑战第12天】本文介绍了小程序全栈开发,涵盖前端和后端的关键点。前端使用WXML和WXSS进行页面结构和样式设计,JavaScript处理逻辑及组件使用;后端采用Node.js等语言处理业务逻辑、数据库设计和API接口开发。前端与后端通过数据交互实现结合,采用前后端分离模式,支持跨平台运行。调试测试后,提交微信审核并上线运营。掌握前端后端结合是小程序成功的关键。