一 目录
不折腾的前端,和咸鱼有什么区别
目录 |
---|
一 目录 |
二 jsliang 整理 |
三 参考文献 |
3.1 手写系列文章 |
3.2 手写 call/bind/apply |
3.3 手写深拷贝和浅拷贝 |
3.4 手写 Promise |
二 jsliang 整理
返回目录
本系列有 7 篇文章,19 个手写方法,大纲 32 个知识点。
手写系列存放位置:
- [x] 手写系列
各个手写具体实现:
[x] Promise
- [x] 简写版
Promise
(不支持异步) - [x] 手写
Promise
(resolve
、reject
、then
) - [x] 实现
Promise.all()
- [x] 实现
Promise.race()
- [x] 实现
Promise
异步调度器
- [x] 简写版
[x] 防抖和节流
- [x] 防抖
- [x] 节流
- [x] 防抖 + 节流(必定能触发的防抖)
[x] 浅拷贝和深拷贝
- [x] 手写浅拷贝
- [x]
Object.assign
- [x] 浅拷贝其他方法:
concat()
、slice()
、[...arr]
- [x] 手写深拷贝
- [x]
JSON.parse(JSON.stringify())
- [x] Lodash 的
_.cloneDeep()
- [x] JQuery 的
$.extend()
[x] call+bind+apply
- [x] 原生
call
和手写call
- [x] 原生
bind
和手写bind
- [x] 原生
apply
和手写apply
- [x] 原生
[x] JSONP
- [x] 基本原理:利用
script
标签的src
没有跨域限制来完成实现 - [x] 优缺点:只能
GET
;兼容性好 - [x] 简单实现:通过
url, params, callbackKey, callback
来定义JSONP()
方法的参数 - [x] 考虑多次调用:基于简单实现,添加数组保存
callback
的返回
- [x] 基本原理:利用
[x] new
- [x] 3 行代码手写
new
- [x] 手写
new
的 5 个特点 - [x] 完整版手写
new
- [x] 3 行代码手写
[x] 其他
- [x]
Object.create()
- [x] ES5 实现类继承
- [x]
instanceof
- [x] 柯里化:求
add(1)(2)(3)
- [x] 迭代器
- [x] Ajax
- [x] 数组扁平化:手撕、
flat()
、reduce()
- [x] 数组去重:手撕、
Set
、filter()
- [x] 其他
- [x]
三 参考文献
返回目录
本系列有 46 篇参考文献。
3.1 手写系列文章
返回目录
- [x] 前端面试常见的手写功能【阅读建议:30min】
- [x] 32个手写JS,巩固你的JS基础(面试高频)【阅读建议:30min】
- [x] 22 道高频 JavaScript 手写面试题及答案【阅读建议:30min】
- [x] 「中高级前端面试」JavaScript手写代码无敌秘籍【阅读建议:30min】
- [x] 几道JS代码手写题以及一些代码实现【阅读建议:30min】
- [x] 三元-手写代码系列【阅读建议:30min】
- [x] CORS 原理及实现【阅读建议:30min】
- [x] JSONP 原理及实现【阅读建议:30min】
- [x] jsonp的原理与实现【阅读建议:10min】
- [x] 20道JS原理题助你面试一臂之力!【阅读建议:30min】
- [x] 7分钟理解JS的节流、防抖及使用场景【阅读建议:10min】
- [x] 防抖和节流原理分析【阅读建议:10min】
- [x] 前端性能相关:防抖、节流【阅读建议:5min】
- [x] 面试官(6): 写过『通用前端组件』吗?【阅读建议:20min】
- [x] 面试官:既然React/Vue可以用Event Bus进行组件通信,你可以实现下吗?【阅读建议:20min】
- [x] 浅谈 instanceof 和 typeof 的实现原理【阅读建议:10min】
- [x] 解锁多种JavaScript数组去重姿势【阅读建议:20min】
- [x] 如何在 JavaScript 中更好地使用数组【阅读建议:10min】
- [x] 7种方法实现数组去重【阅读建议:20min】
3.2 手写 call/bind/apply
返回目录
- [x] MDN - Arguments【阅读建议:5min】
- [x] MDN - call【阅读建议:5min】
- [x] MDN - apply【阅读建议:5min】
- [x] MDN - bind【阅读建议:5min】
- [x] 不用call和apply方法模拟实现ES5的bind方法【阅读建议:1h】
- [x] JavaScript深入之call和apply的模拟实现【阅读建议:20min】
- [x] this、apply、call、bind【阅读建议:30min】
- [x] 面试官问:能否模拟实现JS的call和apply方法【阅读建议:10min】
- [x] JavaScript基础心法—— call apply bind【阅读建议:20min】
- [x] 回味JS基础:call apply 与 bind【阅读建议:10min】
3.3 手写深拷贝和浅拷贝
返回目录
- [x] 如何写出一个惊艳面试官的深拷贝?【阅读建议:2h】
- [x] 深拷贝的终极探索(90%的人都不知道)【阅读建议:1h】
- [x] JavaScript基础心法——深浅拷贝【阅读建议:30min】
- [x] JavaScript专题之深浅拷贝【阅读建议:20min】
- [x] javaScript中浅拷贝和深拷贝的实现【阅读建议:20min】
- [x] 深入剖析 JavaScript 的深复制【阅读建议:20min】
- [x] 「JavaScript」带你彻底搞清楚深拷贝、浅拷贝和循环引用【阅读建议:20min】
- [x] 面试题之如何实现一个深拷贝【阅读建议:30min】
- [x] 面试官:请你实现一个深克隆【阅读建议:10min】
3.4 手写 Promise
返回目录
- [x] 100 行代码实现 Promises/A+ 规范【阅读建议:30min】
- [x] 最简实现 Promise,支持异步链式调用(20行)【建议阅读:20min】
- [x] BAT 前端经典面试问题:史上最最最详细的手写 Promise 教程【阅读建议:30min】
- [x] 一起学习造轮子(一):从零开始写一个符合Promises/A+规范的promise【阅读建议:大概看了遍,没前面剖析的清晰】
- [x] Promise实现原理(附源码)【阅读建议:大概看了遍,没前面剖析的清晰】
- [x] 剖析Promise内部结构,一步一步实现一个完整的、能通过所有Test case的Promise类【建议阅读:写得比较细,没前面剖析的清晰】
- [x] 小邵教你玩转promise源码【建议阅读:写得比较细,没前面剖析的清晰】
- [x] Promise不会??看这里!!!史上最通俗易懂的Promise!!!【建议阅读:写得比较细,没前面剖析的清晰】
jsliang 的文档库由 梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议 进行许可。<br/>基于 https://github.com/LiangJunrong/document-library 上的作品创作。<br/>本许可协议授权之外的使用权限可以从 https://creativecommons.org/licenses/by-nc-sa/2.5/cn/ 处获得。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。