jsliang 求职系列 - 15 - 手写源码系列汇总

2,501 阅读5分钟

一 目录

不折腾的前端,和咸鱼有什么区别

目录
一 目录
二 jsliang 整理
三 参考文献
3.1 手写系列文章
3.2 手写 call/bind/apply
3.3 手写深拷贝和浅拷贝
3.4 手写 Promise

二 jsliang 整理

返回目录

本系列有 7 篇文章,19 个手写方法,大纲 32 个知识点。

手写系列存放位置:

各个手写具体实现:

  • Promise
    • 简写版 Promise(不支持异步)
    • 手写 Promiseresolverejectthen
    • 实现 Promise.all()
    • 实现 Promise.race()
    • 实现 Promise 异步调度器
  • 防抖和节流
    • 防抖
    • 节流
    • 防抖 + 节流(必定能触发的防抖)
  • 浅拷贝和深拷贝
    • 手写浅拷贝
    • Object.assign
    • 浅拷贝其他方法concat()slice()[...arr]
    • 手写深拷贝
    • JSON.parse(JSON.stringify())
    • Lodash 的 _.cloneDeep()
    • JQuery 的 $.extend()
  • call+bind+apply
    • 原生 call 和手写 call
    • 原生 bind 和手写 bind
    • 原生 apply 和手写 apply
  • JSONP
    • 基本原理:利用 script 标签的 src 没有跨域限制来完成实现
    • 优缺点:只能 GET;兼容性好
    • 简单实现:通过 url, params, callbackKey, callback 来定义 JSONP() 方法的参数
    • 考虑多次调用:基于简单实现,添加数组保存 callback 的返回
  • new
    • 3 行代码手写 new
    • 手写 new 的 5 个特点
    • 完整版手写 new
  • 其他
    • Object.create()
    • ES5 实现类继承
    • instanceof
    • 柯里化:求 add(1)(2)(3)
    • 迭代器
    • Ajax
    • 数组扁平化:手撕、flat()reduce()
    • 数组去重:手撕、Setfilter()
    • 其他

三 参考文献

返回目录

本系列有 46 篇参考文献。

3.1 手写系列文章

返回目录

3.2 手写 call/bind/apply

返回目录

3.3 手写深拷贝和浅拷贝

返回目录

3.4 手写 Promise

返回目录


jsliang 的文档库由 梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议 进行许可。
基于 github.com/LiangJunron… 上的作品创作。
本许可协议授权之外的使用权限可以从 creativecommons.org/licenses/by… 处获得。