首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
underscore 系列
冴羽
创建于2021-12-09
订阅专栏
旨在帮助大家阅读 underscore 源码,介绍 underscore 中的代码架构、链式调用、内部函数、模板引擎等内容,帮你写出自己的 undercore。
等 113 人订阅
共9篇文章
创建于2021-12-09
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
underscore 的源码该如何阅读?
underscore 系列是我写的第三个系列,前两个系列分别是 JavaScript 深入系列、JavaScript 专题系列。 这个系列算是 JavaScript 专题系列的番外篇,总共写了 8 篇,重点介绍了 underscore 中的代码组织、链式调用、内部函数、模板引擎…
underscore 系列之字符实体与 _.escape
underscore 提供了 _.escape 函数,用于转义 HTML 字符串,替换 &, <, >, ", ', 和 ` 字符为字符实体。 比如我把这个页面的地址修改为:www.example.com/user.html?name=<script>alert(1)</scr…
underscore 系列之实现一个模板引擎(下)
本篇接着上篇 underscore 系列之实现一个模板引擎(上)。 鉴于本篇涉及的知识点太多,我们先来介绍下会用到的知识点。 我们的本意是想打印带 "" 包裹的 Vikings 字符串,但是在 JavaScript 中,字符串使用单引号或者双引号来表示起始或者结束,这段代码会报…
underscore 系列之实现一个模板引擎(上)
underscore 的 template 函数参考了 jQuery 的作者 John Resig 在 2008 年发表的一篇文章 JavaScript Micro-Templating,我们先从这篇文章的思路出发,思考一下如何写一个简单的模板引擎。 我们注意,模板其实是一段字…
underscore 系列之防冲突与 Utility Functions
所以 underscore 提供了 noConflict 功能,可以放弃 underscore 的控制变量 _,返回 underscore 对象的引用。 首先,在 underscore 执行的时候,会储存之前的 _ 对象,然后当执行 noConflict 函数的时候,再将之前储…
underscore 系列之内部函数 restArgs
ES6 为我们提供了剩余参数(rest parameter)语法,允许我们将一个不定数量的参数表示为一个数组。 如果不使用 ... 拓展操作符,仅用 ES5 的内容,该怎么实现呢? 我们默认使用传入的函数的最后一个参数储存剩余的参数,为了更加灵活,我们可以再增加一个参数,用来指…
underscore 系列之内部函数 cb 和 optimizeCb
仅看 cb 和 optimizeCb 两个函数的名字,你可能想不到这是用来做什么的,尽管你可能想到 cb 是 callback 的缩写。 如果直接讲解源码,你可能想不明白为什么要这么写,所以我们从 _.map 函数开始讲起。 _.map 类似于 Array.prototype.…
underscore 系列之链式调用
本文接着上篇《underscore 系列之如何写自己的 underscore》,阅读本篇前,希望你已经阅读了上一篇。 jQuery 之所以能实现链式调用,关键就在于通过 return this,返回调用对象。再精简下 demo 就是: 该对象的原型上有着 underscore …
underscore 系列之如何写自己的 underscore
在 《JavaScript 专题系列》 中,我们写了很多的功能函数,比如防抖、节流、去重、类型判断、扁平数组、深浅拷贝、查找数组元素、通用遍历、柯里化、函数组合、函数记忆、乱序等,可以我们该如何组织这些函数,形成自己的一个工具函数库呢?这个时候,我们就要借鉴 underscor…