lodash简介

<<模块lodash的作用>>

Lodash是一个内部封装了诸多对字符串、数组、对象等常见的数据类型的处理函数的一套工具库
Lodash提供的辅助函数主要分为以下几类

---Array,适用于数组类型,比如填充数据、查找元素、数组分片等操作
---Collection,适用于数组和对象类型,部分适用于字符串,比如分组、查找、过滤等操作
---Function,适用于函数类型,比如节流、延迟、缓存、设置钩子等操作
---Lang,普遍适用于各种类型,常用于执行类型判断和类型转换
---Math,适用于数值类型,常用于执行数学计算
---Number,适用于生成随机数,比较数值与数值区间的关系
---Object,适用于对象类型,常用于对象的创建、扩展、类型转换、检索、集合等操作
---Seq,常用于创建链式调用,提高执行性能
---String,适用于字符串类型

lodash主要使用了延迟计算,使得其性能大大提升,延迟计算意味着在我们的链式方法在显示或者隐藏式的value()调用之前式不会执行的。由于这种执行的延后,因此lodash可以进行shortcut fusion这样的优化,通过合并链式iteratee大大降低迭代次数。从而大大提升性能
//什么是shortcut fusion??
例如

    var users = [
        {'username': 'barry', 'age': 15},
        {'username': 'fred', 'age': 18},
        {'username': 'jason', 'age': 20}
    ];
    //获取所有用户的名字,并且用','来分割开来
    var names = _.chain(users)
        .map(function(user){
            return user.username;
        })
        .join(',')
        .value();
    console.log(names);

这里只是一串方法链,如果没有显式的调用value方法,使其立即执行的话,将会得到LodashWrapper的延迟表达式,如下

LodashWrapper {__wrapped__: LazyWrapper, __actions__: Array[1], __chain__: true, constructor: function, after: function…}

因为延迟表达式的存在,我们可以多次增加方法链,但是并不会执行,所以不会存在性能上的问题,当我们最后需要使用的时候,使用value显示立即执行即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 Lodash是一个著名的javascript原生库,不需要引入其他第三方依赖。是一个意在提高开发者效率,提高...
    yuansc阅读 10,804评论 1 9
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,228评论 4 61
  • 《逆向管理:先行动后思考》是2016年北京联合出版公司出版的图书,作者是(美)埃米尼亚·伊贝拉。 这本由全球50大...
    Tony说事阅读 1,180评论 2 7
  • 最近朋友圈和微博负能量比较大。大多是关于之前产妇坠楼的新闻。我想说的还是那句话:什么叫本事,活着就叫本事,...
    倩倩_3852阅读 249评论 0 1
  • 我经常在朋友圈上看到有人发一条状态,叫“要让自己忙起来”。 咱得马上点赞, 以前。这是正能量啊, 我们需要这样的正...
    尹密密阅读 282评论 0 1