美文网首页
lodash简介

lodash简介

作者: losspm | 来源:发表于2017-11-22 13:32 被阅读170次

    <<模块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简介

          本文链接:https://www.haomeiwen.com/subject/uwbnvxtx.html