常见的前端手写功能
1、防抖
function debounce(fn, delay) { |
2、节流
function throttle(fn, delay) { |
3、深拷贝
JSON 方法
// 不支持值为undefined、函数和循环引用的情况 |
递归拷贝
function deepClone(obj, cache = new WeakMap()) { |
4、手写[[Promise]]
class MyPromise { |
5、异步控制并发数
function limitRequest(urls = [], limit = 3) { |
6、继承
ES5 继承(寄生组合继承)
function Parent(name) { |
ES6 继承
class Parent { |
7、数组排序
sort 排序
// 对数字进行排序,简写 |
冒泡排序
function bubbleSort(arr) { |
8、数组去重
Set 去重
const newArr = [...new Set(arr)] |
indexOf 去重
const newArr = arr.filter((item, index) => arr.indexOf(item) === index) |
9、获取 url 参数
URLSearchParams 方法
// 创建一个URLSearchParams实例 |
split 方法
function getParams(url) { |
10、发布订阅模式
class EventEmitter { |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment