lodash源码分析之isArguments

2018-11-10
阅读 1 分钟
1.7k
有人命中注定要过平庸的生活,默默无闻,因为他们经历了痛苦或不幸;有人却故意这样做,那是因为他们得到的幸福超过了他们的承受能力。——卡尔维诺《烟云》

lodash源码分析之isObjectLike

2018-10-02
阅读 2 分钟
1.6k
这世界上之所以会有无主的东西,方法是因为有人失去了记忆。——王小波《万寿寺》 本文为读 lodash 源码的第二十篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 源码分析 isObjectLike 的源码很短,如下: {代码...} 其实就是使用 typeof 操作符,如果...

lodash源码分析之数据类型获取的兼容性

2018-09-24
阅读 3 分钟
2.4k
在前文《lodash源码分析之获取数据类型》已经解释了获取数据类型的方法,但是在有些环境下,一些 es6 新增的对象获取到的类型都为 [object Object] ,这样就没办法做细致的区分。例如在 IE11 中,通过 Object.prototype.toString 获取到的 DataView 对象类型为 [object Object]。 因此在 getTag 中,lodash 针对这些对象...

lodash源码分析之获取数据类型

2018-04-07
阅读 4 分钟
3k
所有的悲伤,总会留下一丝欢乐的线索,所有的遗憾,总会留下一处完美的角落,我在冰峰的深海,寻找希望的缺口,却在惊醒时,瞥见绝美的阳光!——几米

lodash源码分析之数组的差集

2018-03-14
阅读 3 分钟
4.3k
外部世界那些破旧与贫困的样子,可以使我内心世界得到平衡。——卡尔维诺《烟云》 本文为读 lodash 源码的第十七篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 作用与用法 baseDifference 可以用来获取指定数组与另一个数组的差集。 这个函数是内部函...

lodash源码分析之baseFindIndex中的运算符优先级

2018-02-05
阅读 2 分钟
3.3k
我悟出权力本来就是不讲理的——蟑螂就是海米;也悟出要造反,内心必须强大到足以承受任何后果才行。——北岛《城门开》 本文为读 lodash 源码的第十篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 作用与用法 baseFindIndex 是内部方法,其作用类似于ES...

lodash源码分析之缓存使用方式的进一步封装

2018-01-29
阅读 2 分钟
2.3k
在之前的《lodash源码分析之Hash缓存》和《lodash源码分析之List缓存》介绍过 lodash 的两种缓存方式,在《lodash源码分析之缓存方式的选择》中介绍过这两种缓存方式和 Map 的封装,lodash 会根据缓存类型来选择最优的缓存方式。

lodash源码分析之缓存方式的选择

2018-01-22
阅读 5 分钟
3.1k
在《lodash源码分析之Hash缓存》和《lodash源码分析之List缓存》介绍了 lodash 的两种缓存方式,这两种缓存方式都实现了和 Map 一致的数据管理接口,其中 List 缓存只在不支持 Map 的环境中使用,那何时使用 Hash 缓存,何时使用 Map 或者 List 缓存呢?这就是 MapCache 类所需要做的事情。

lodash源码分析之List缓存

2018-01-15
阅读 4 分钟
1.9k
昨日我沿着河岸/漫步到/芦苇弯腰喝水的地方顺便请烟囱/在天空为我写一封长长的信 潦是潦草了些/而我的心意/则明亮亦如你窗前的烛光/稍有暧昧之处/势所难免/因为风的缘故 ——洛夫《因为风的缘故》

lodash源码分析之自减的两种形式

2018-01-09
阅读 2 分钟
1.8k
这个世界需要一个特定的恶人,可以供人们指名道姓,千夫所指:“全都怪你”。——村上春树《当我谈跑步时我谈些什么》 本文为读 lodash 源码的第六篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 本篇分析的是 assocIndexOf 函数。 作用与用法 assocInde...

lodash源码分析之NaN不是NaN

2018-01-04
阅读 3 分钟
1.9k
暗恋之纯粹,在于不求结果,完全把自己锁闭在一个单向的关系里面。——梁文道《暗恋到偷窥》 本文为读 lodash 源码的第五篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 本篇分析的是 eq 函数。 作用与用法 eq 函数用来比较两个值是否相等。遵循的是 S...

lodash源码分析之Hash缓存

2018-01-02
阅读 4 分钟
2.9k
在那小小的梦的暖阁,我为你收藏起整个季节的烟雨。——洛夫《灵河》 本文为读 lodash 源码的第四篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 作用与用法 Hash 顾名思义,就是要有一个离散的序列,根据 key 来储取数据。而在 javascript 中,最适合...

lodash源码分析之compact中的遍历

2017-12-18
阅读 3 分钟
1.9k
小时候,乡愁是一枚小小的邮票, 我在这头, 母亲在那头。 长大后,乡愁是一张窄窄的船票, 我在这头, 新娘在那头。 后来啊, 乡愁是一方矮矮的坟墓, 我在外头, 母亲在里头。 而现在, 乡愁是一湾浅浅的海峡, 我在这头, 大陆在那头。 ——余光中《乡愁》

lodash源码分析之chunk的尺与刀

2017-12-07
阅读 2 分钟
3.2k
以不正义开始的事情,必须用罪恶使它巩固。——莎士比亚《麦克白》 最近很多事似乎印证了这句话,一句谎言最后要用一百句谎言来圆谎。 本文为读 lodash 源码的第二篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 作用与用法 chunk 函数可以将一个数组...

读lodash源码之从slice看稀疏数组与密集数组

2017-11-20
阅读 4 分钟
4.2k
卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭。 ——北岛《回答》 看北岛就是从这两句诗开始的,高尚者已死,只剩卑鄙者在世间横行。 本文为读 lodash 源码的第一篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址:pocket-lodash 引言 你可能会有点奇怪,原生的 slice ...

读Zepto源码之Data模块

2017-10-25
阅读 5 分钟
2.3k
Zepto 的 Data 模块用来获取 DOM 节点中的 data-* 属性的数据,和储存跟 DOM 相关的数据。 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 GitBook 《reading-zepto》 内部方法 attributeData {代码...} 这个方法用来获取给定 node 中所有 data-* 属性的值,...

读Zepto源码之Form模块

2017-10-23
阅读 4 分钟
2.6k
Form 模块处理的是表单提交。表单提交包含两部分,一部分是格式化表单数据,另一部分是触发 submit 事件,提交表单。 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 GitBook 《reading-zepto》 .serializeArray() {代码...} serializeArray 是格式化部分的核...

读Zepto源码之Stack模块

2017-10-16
阅读 2 分钟
2.7k
Stack 模块为 Zepto 添加了 addSelf 和 end 方法。 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 改写原有的方法 {代码...} Stack 模块改写了以上这些方法,这些方法在调用的时候,会为返回的结果 ret 添加 prevObject 的属性,用来保存原来的集合。 .addSe...

读Zepto源码之fx_methods模块

2017-10-12
阅读 4 分钟
2.1k
fx 模块提供了 animate 动画方法,fx_methods 利用 animate 方法,提供一些常用的动画方法。所以 fx_methods 模块依赖于 fx 模块,在引入 fx_methods 前必须引入 fx 模块。

读Zepto源码之Fx模块

2017-10-09
阅读 9 分钟
2.3k
fx 模块为利用 CSS3 的过渡和动画的属性为 Zepto 提供了动画的功能,在 fx 模块中,只做了事件和样式浏览器前缀的补全,没有做太多的兼容。对于不支持 CSS3 过渡和动画的, Zepto 的处理也相对简单,动画立即完成,马上执行回调。

读Zepto源码之IOS3模块

2017-09-30
阅读 3 分钟
3.5k
IOS3 模块是针对 IOS 的兼容模块,实现了两个常用方法的兼容,这两个方法分别是 trim 和 reduce 。 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 GitBook 《reading-zepto》 trim {代码...} 看注释, trim 是为了兼容 ios3.2 的。 也是常规的做法,如果 Str...

读Zepto源码之Gesture模块

2017-09-25
阅读 3 分钟
2.4k
Gesture 模块基于 IOS 上的 Gesture 事件的封装,利用 scale 属性,封装出 pinch 系列事件。 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 GitBook 《reading-zepto》 整体结构 {代码...} 注意这里有个判断 $.os.ios ,用来判断是否为 ios 。这个判断需要引...

读Zepto源码之Touch模块

2017-09-20
阅读 9 分钟
4.6k
大家都知道,因为历史原因,移动端上的点击事件会有 300ms 左右的延迟,Zepto 的 touch 模块解决的就是移动端点击延迟的问题,同时也提供了滑动的 swipe 事件。

读Zepto源码之Selector模块

2017-09-18
阅读 5 分钟
4.3k
Selector 模块是对 Zepto 选择器的扩展,使得 Zepto 选择器也可以支持部分 CSS3 选择器和 eq 等 Zepto 定义的选择器。

读Zepto源码之assets模块

2017-09-11
阅读 2 分钟
2.2k
assets 模块是为解决 Safari 移动版加载图片过大过多时崩溃的问题。因为没有处理过这样的场景,所以这部分的代码解释不会太多,为了说明这个问题,我翻译了《How to work around the Mobile Safari image resource limit》这篇文章作为附文(《怎样处理 Safari 移动端对图片资源的限制》),更详细地解释了这个模块的应...

【译】怎样处理 Safari 移动端对图片资源的限制

2017-09-11
阅读 2 分钟
4k
原文作者:Thijs van der Vossen 本文翻译自《How to work around the Mobile Safari image resource limit》,原文写于2010年10月25日。可能部分限制已经不再适用。 翻译本文的目的是作为《读Zepto源码之assets模块》的附文,读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 正文开始: 受限于 Ipad ...

读Zepto源码之Ajax模块

2017-08-28
阅读 23 分钟
5.6k
Ajax 模块也是经常会用到的模块,Ajax 模块中包含了 jsonp 的现实,和 XMLHttpRequest 的封装。 读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 ajax的事件触发顺序 zepto 针对 ajax 的发送过程,定义了以下几个事件,正常情况下的触发顺序如下: ajaxstart :...

读Zepto源码之Deferred模块

2017-07-31
阅读 10 分钟
1.9k
Deferred 模块也不是必备的模块,但是 ajax 模块中,要用到 promise 风格,必需引入 Deferred 模块。Deferred 也用到了上一篇文章《读Zepto源码之Callbacks模块 )》介绍的 Callbacks 模块。

读Zepto源码之Callbacks模块

2017-07-23
阅读 9 分钟
2k
Callbacks 模块并不是必备的模块,其作用是管理回调函数,为 Defferred 模块提供支持,Defferred 模块又为 Ajax 模块的 promise 风格提供支持,接下来很快就会分析到 Ajax模块,在此之前,先看 Callbacks 模块和 Defferred 模块的实现。

读Zepto源码之Event模块

2017-07-18
阅读 20 分钟
4.5k
Event 模块是 Zepto 必备的模块之一,由于对 Event Api 不太熟,Event 对象也比较复杂,所以乍一看 Event 模块的源码,有点懵,细看下去,其实也不太复杂。