您当前的位置:首页 > 互联网教程

lodash常用方法

发布时间:2025-05-20 06:28:02    发布人:远客网络

lodash常用方法

一、lodash常用方法

说明:其实就是如果没有这个值以后就会返回undefined,而不会像js中没有这个值就会报错

说明:执行深比较来决定两者的值是否相等。

说明:创建一个移除了所有假值的数组。例如:false、null、 0、""、undefined,以及NaN都是“假值”.

5._.truncate([string=''], [options])

说明:截断字符串,如果字符串超出了限定的最大值。被截断的字符串后面会以 omission代替,omission默认是"..."

8..findIndex(array, [predicate=.identity])

说明:返回符合元素的 index,否则返回-1。

二、lodash和lodash-es有什么区别呢

1、lodash是默认的 commonjs版本,适用于常规的模块化环境。它提供了一系列的工具函数,用于简化 JavaScript编程过程,例如数组操作、对象处理等。

2、而 lodash-es则是 lodash的 es modules版本。这种版本特别适合用于小型项目或对文件体积有严格要求的情况。与 lodash相比,lodash-es的体积更小,因为去除了不需要的代码部分,更适合用于构建过程中的打包。

3、不论是在使用打包工具构建项目时,还是直接引入到代码中,lodash和 lodash-es都可以实现其功能需求。然而,选择其中一个版本则取决于项目的具体需求和对性能、体积的考虑。对于大型项目,通常 lodash能提供更全面的功能和更好的兼容性。而对于小型项目或注重优化文件体积的场景,lodash-es则是更优选择。

三、lodash源码分析——deepclone

lodash源码分析——deepclone,基于4.17.10版本

本文从源码阅读初心者的角度,一句一句深入分析lodash的deepclone方法,从入口函数开始,逐步解析每一个关键步骤。

入口函数调用cloneDeep.js,通过掩码位判断是否进行深拷贝与复制symbol类型。

在baseClone.js中,通过内部函数调用baseClone进行主要逻辑处理。先判断对象是否为普通对象,然后使用getTag方法获取对象的类型标识。

getTag方法通过baseGetTag进行判断,获取symbol类型时返回symbol.toStringTag属性。现代浏览器支持返回特定类型标签,如内置对象类型或新出现的类型如Map、Promise等。对于自定义类创建的对象,若无特定标签则返回[object Object]。

继续解析baseClone逻辑,重点在于针对不同类型的对象进行区分处理,包括数组、普通对象、函数等。函数和空对象返回{},不进行深拷贝。

在处理复杂类型如数组和对象时,baseClone采用initCloneArray和copyArray函数优化拷贝过程。对于循环引用问题,通过构造栈结构解决,保证了代码的兼容性和易用性。

对于symbol类型,通过Object.getOwnPropertySymbols方法获取symbol的副本,确保深拷贝操作的完整性。

总结,lodash的deepclone方法通过Object.prototype.toString.call得到对象的类型标识,根据标识进行针对性处理,同时解决循环引用问题,兼容现代浏览器的symbol类型。然而,对于function类型仍然采用引用拷贝,未进行深拷贝处理原型链上的属性。

本文由某初学者撰写,旨在分享lodash deepclone源码分析过程,提供一个从入门到深入理解的路径参考。完成日期:2018年7月22日。