What is Lodash
Lodash 不仅仅是一个现代 JavaScript 工具库,更是一种数据处理的方式。
import _ from 'lodash'; var object = {
'a': [{
'b': {
'c': 3 } }, 4] }; _.at(object, ['a[0].b.c', 'a[1]']); // => [3, 4]
讯享网
这个系列将以阅读源码的方式,探秘 Lodash,并且加深对 JavaScript 的理解。
Why is Lodash
我在 Underscore 和 Lodash 之间纠结了一下,最终选择了 Lodash 作为我的源码阅读之路的开篇。
Lodash 基于 ES6 的语法,具有模块化的源码结构
ES6+ 即将或者已经成为 JavaScript 开发的规范。而 Lodash 的源码基于 ES6 的语法规范,相比于 Underscore 更具有前瞻性。
正因如此,Lodash 将每一个 API 都单独分隔成一个模块,并且支持按需引入,比如:
讯享网import chunk from lodash.chunk chunk([1, 2, 3, 4, 5, 6], 2) // [[1, 2], [3, 4], [5, 6]]
在 Node 中也可以很方便的使用:
const chunk = require(lodash.chunk)
而模块结构,可以更具有针对性,更清晰地分析源码,避免走进源码的黑洞。这是阅读源码很重要的一点。
Lodash 丰富的 API
Lodash 具有 200+ 的 API,主要包括数组、对象、字符串的处理,类型检测,以及工具函数等,并且覆盖了全部的原生 JS API。
从使用 Lodash 的角度来说,Lodash 具有其 API 不会改变原数据的优点,避免了使用某些原生 JS API 会改变原数据的隐患。比如原生 JS 中数组的 reverse() 方法。
讯享网const originalArr = [1, 2, 3]; originalArr.reverse(); console.log(originalArr); // [3, 2, 1] const originalArr2 = [4, 5, 6]; _.reverse(originalArr2); console.log(originalArr2); // [4, 5, 6]
从源码学习的角度,我认为学习 Lodash 的 API,可以对 JS 的基础知识得到一次提升,这也是我写这个系列的主要目的。
Lodash 的函数式编程思想
Lodash/fp 可以实现函数式编程。
目前,我对函数式编程处于了解的阶段,我也就暂时不展开了。希望通过 Lodash 源码的学习,让我入门函数式编程。这是第二个目的。
Lodash 的性能
Lodash 还有一个我感兴趣的点,即惰性计算。这个也待我了解清楚后,在后续的文章中记录。
所以,我选择 Lodash
以上四点,是我选择 Lodash 的原因。
我深知源码学习之难,通过写文章的方式记录,是一种激励自己的方式。
About Me
Leo,本科,前端爱好者。
GitHub: https://github.com/swpuleo
CSDN: https://blog.csdn.net/swpu_Leo
Email:
在路上。
Next
Lodash 如何判断数据类型 I
我的公众号


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/41050.html