这是我们阅读Lodash源码的第3篇博客,在这篇文章里我们来学习一下Lodash的compact
方法。
compact
函数内部没有依赖别的函数,让我们先来看一下compact
函数的源码。
从今天开始,我准备把Lodash的源码从头到尾完整的阅读一遍;为了纪念这个过程,也为了有所收获;我会把阅读源码的过程用博客记录下来,我们的目的是为了从0开始,仿写一个完整的Lodash。这个项目的源码地址是sharp-lodash,期间我会把博客的内容同步到_anatomy_lodash上,大家可以在_anatomy_lodash看完整版,网站的项目地址是dreamapplehappy/_anatomy_lodash。还需要了解的一点是我们阅读的Lodash源码版本号是4.17.4
我们今天来聊一聊关于JavaScript文件的引入位置的问题;大家在平时的Web开发中有没有想过这样一个问题,那就是我应该在文档的头部(也就是<head>
标签内部里面)引入所需要的JavaScript文件还是应该在尾部(也就是</body>
之前)引入所需要的JavaScript文件呢?今天我们就来深入的探究一下这个问题。
首先我们需要了解的一点就是,在浏览器渲染页面之前,它需要通过解析HTML
标记然后构建DOM
树。在这个过程中,如果解析器遇到了一个脚本(script
),它就会停下来,并且执行这个脚本,然后才会继续解析HTML
。如果遇到了一个引用外部资源的脚本(script
),它就必须停下来等待这个脚本资源的下载,而这个行为会导致一个或者多个的网络往返,并且会延迟页面的首次渲染时间。
最近准备把JavaScript的许多原生API都研究一下,恰巧昨天在看querySelectorAll
方法的时候看到了一篇文章Why is getElementsByTagName() faster than querySelectorAll()?,这篇文章解释了为什么getElementsByTagName
方法比querySelectorAll
方法快的原因,如果你英语不错的话,推荐你看看原文。当然如果你不想看的话,继续把这篇文章看完也是可以得到答案的。
这是我们阅读Lodash源码的第3篇博客,在这篇文章里我们来学习一下Lodash的compact方法。 compact函数内部没有依赖别的函数,让我们先来看一下compact函数的源码。 123456789101112131415161718192021222324252627282930/** *
这是我们阅读Lodash源码的第2篇博客,在这篇文章里我们来学习一下Lodash的chunk方法。 chunk函数内部依赖其他的函数,依赖的函数如下所示; slice 按照惯例,我们先来看一下关于chunk方法的源码chunk.js: 12345678910111213141516171819202
这是我们阅读源码的第1篇博客,这一篇博客主要介绍Lodash的slice函数,这个函数内部的实现没有依赖别的函数;我们这篇博客就来讲解一下这个slice函数。 我们首先来看一下这个函数的源码,源码如下所示:12345678910111213141516171819202122232425262728
从今天开始,我准备把Lodash的源码从头到尾完整的阅读一遍;为了纪念这个过程,也为了有所收获;我会把阅读源码的过程用博客记录下来,我们的目的是为了从0开始,仿写一个完整的Lodash。这个项目的源码地址是sharp-lodash,期间我会把博客的内容同步到_anatomy_lodash上,大家可以
我们今天来聊一聊关于JavaScript文件的引入位置的问题;大家在平时的Web开发中有没有想过这样一个问题,那就是我应该在文档的头部(也就是<head>标签内部里面)引入所需要的JavaScript文件还是应该在尾部(也就是</body>之前)引入所需要的JavaScrip
博客的地址是blog,如果你觉得我的博客对你有帮助,你可以点击项目的Watch以便可以在更新的时候得到通知。如果你有什么想跟我交流可以在下面留言。 赞赏喝杯可乐,赞赏时请备注是赞赏哦 支付宝 微信