Hefty

Results 107 issues of Hefty

本文为读 lodash 源码的第五十三篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 依赖 ```javascript import toNumber from './toNumber.js' ``` [《lodash源码分析之toNumber》](https://github.com/yeyuqiudeng/pocket-lodash/issues/53) ## 源码分析 从方法名上看,`toFinite` 的作用大体有两个: 1. 将 `value` 转换成 `number` 类型 2. 返回有限值 看看源码: ```javascript function toFinite(value)...

系列文章
api

本文为读 lodash 源码的第五十二篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 依赖 ```javascript import isObject from './isObject.js' import isSymbol from './isSymbol.js' ``` [《lodash源码分析之isObject》](https://github.com/yeyuqiudeng/pocket-lodash/issues/51) [《lodash源码分析之isSymbol》](https://github.com/yeyuqiudeng/pocket-lodash/issues/52) ## 源码分析 ### 整体源码 ```javascript const NAN = 0 / 0...

系列文章
api

本文为读 lodash 源码的第二百九十六篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 依赖 ```javascript import baseMerge from './.internal/baseMerge.js' import createAssigner from './.internal/createAssigner.js' ``` [lodash源码分析之baseMerge](https://github.com/yeyuqiudeng/pocket-lodash/issues/280) [lodash源码分析之createAssigner](https://github.com/yeyuqiudeng/pocket-lodash/issues/283) ## 源码分析 `merge` 用来合并多个对象的属性到 `object` 上。 源码如下: ```javascript const merge =...

系列文章
api

本文为读 lodash 源码的第一百一十六篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 依赖 ```javascript import baseAssignValue from './baseAssignValue.js' import eq from '../eq.js' ``` [《lodash源码分析之baseAssignValue》](https://github.com/yeyuqiudeng/pocket-lodash/issues/116) [《lodash源码分析之NaN不是NaN》](https://github.com/yeyuqiudeng/pocket-lodash/issues/5) ## 源码分析 `assignValue` 的作用是将 `value` 设置到 `object` 指定的 `key` 上。 源码如下:...

系列文章
internal

本文为读 lodash 源码的第六十六篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 源码分析 `memoize` 的作用是缓存传入函数的计算结果,这个对于重复执行计算量繁重的函数相当有用。 源码如下: ```javascript function memoize(func, resolver) { if (typeof func !== 'function' || (resolver != null && typeof resolver !== 'function')) {...

系列文章
api

本文为读 lodash 源码的第八十篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 依赖 ```javascript import isSymbol from '../isSymbol.js' ``` [《lodash源码分析之isSymbol》](https://github.com/yeyuqiudeng/pocket-lodash/issues/52) ## 源码分析 `baseSortedIndexBy` 是实现 `sortedIndexBy` 和 `sortedLastIndexBy` 的基础方法。 其作用是找出,指定的 `value` 在一个已经排好序的数组 `array` 中,应该插入的位置,这样就算这个 `value` 插入到这个位置,原来的数组的排序不会打乱。 因为同时要支持...

系列文章
internal

> 宗教与哲学的分野,一个是信仰,一个是怀疑。宗教,稍有怀疑,就被视为异端。 > > ——木心《文学回忆录》 本文为读 lodash 源码的第十五篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 源码分析 ```javascript function map(array, iteratee) { let index = -1 const length = array == null ? 0 :...

系列文章
api

> 所有的悲伤,总会留下一丝欢乐的线索,所有的遗憾,总会留下一处完美的角落,我在冰峰的深海,寻找希望的缺口,却在惊醒时,瞥见绝美的阳光! > > ——几米 本文为读 lodash 源码的第十八篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 作用与用法 我们都知道,可以借用 `Object` 原型上的 `toString` 方法来获取数据的类型。 `baseGetTag` 利用的也是这一特性,其返回的结果如 `[object String]` 这样的形式,调用方式如下: ```javascript baseGetTag('string') // [object String] ``` ## 为什么可以用Object.prototype.toString...

系列文章
internal

本文为读 lodash 源码的第二百一十六篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 依赖 ```javascript import eq from '../eq.js' import equalArrays from './equalArrays.js' import mapToArray from './mapToArray.js' import setToArray from './setToArray.js' ``` [《lodash源码分析之eq》](https://github.com/yeyuqiudeng/pocket-lodash/issues/5) [《lodash源码分析之equalArrays》](https://github.com/yeyuqiudeng/pocket-lodash/issues/215) [《lodash源码分析之mapToArray》](https://github.com/yeyuqiudeng/pocket-lodash/issues/216) [《lodash源码分析之setToArray》](https://github.com/yeyuqiudeng/pocket-lodash/issues/97) ##...

系列文章
internal

> 以不正义开始的事情,必须用罪恶使它巩固。 > > ——莎士比亚《麦克白》 最近很多事似乎印证了这句话,一句谎言最后要用一百句谎言来圆谎。 本文为读 lodash 源码的第二篇,后续文章会更新到这个仓库中,欢迎 star:[pocket-lodash](https://github.com/yeyuqiudeng/pocket-lodash) gitbook也会同步仓库的更新,gitbook地址:[pocket-lodash](https://www.gitbook.com/book/yeyuqiudeng/pocket-lodash/details) ## 作用与用法 `chunk` 函数可以将一个数组,切割成指定大小的块,返回由这些块组成的新数组。 `chunk` 函数在前端可以用来缓解一些性能问题。例如大量的 DOM 操作,可以分块让浏览器在空闲的时候处理,避免页面卡死。如下面的代码,向页面中插入大量的DOM。 ```javascript const arr = [] // 1万条数据 const chunks = _.chunk(arr,...

系列文章
api