前端开发中工具库

前端开发中,经常用一些工具函数, 比如lodash underscore ramda 等库,这些库不只是封装了对数据的快速处理的方法,而是强调了函数式变成的重要性,所以觉得前端开发工程师都应该熟练掌握里面的函数

写在最前面

柯里化: 是把接受多个参数形式参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术, 摘自维基百科

在函数式编程中,有时候需要做一些 参数复用,提前返回,或者延迟计算或者运行时候,我们可以让自己编写的函数支持柯里化,来提高性能和便利性,在介绍工具函数库之前介绍这个概念是因为,上面的工具函数库,有一些工具函数是支持柯里化

lodash文档

支持全部引用也支持单函数引用, 里面支持很多数据操作方法

var _ = require('lodash')
// 全部引用
var _ = require('lodash/core')
// 引用核心
var fp = require('lodash/fp')
//  Load the FP build for immutable auto-curried iteratee-first data-last methods.

// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');
 
// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');

注意
lodash/fp 下面的方法

  • 是可以按需加载
  • 都是Immutable的, 也就是不会改变传入参数的原始值,只会返回新的对象。
  • 可以Auto-curried(柯里化) Iteratee-first Data-last

underscore 文档

函数式编程的另一库,underscore,也是我最早接触, 它提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象,与lodash提供的有相同的也有不同的

ramda文档

Ramda 的目标更为专注:专门为函数式编程风格而设计,更容易创建函数式 pipeline、且从不改变用户已有数据。

ramda所有方法都支持 柯里化, 数据都放在最后一个参数

var g = R.curry(function(x, y) {
  return x + y
})

g(1, 2)
g(1)(2)
// 等价

api 解析

add(2, 3) 
add(2)(3) 

你可能感兴趣的:(前端开发中工具库)