# js面试手写 **Repository Path**: florenza/js-interview-handwriting ## Basic Information - **Project Name**: js面试手写 - **Description**: js手写面试 - **Primary Language**: JavaScript - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-07 - **Last Updated**: 2022-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README - 实现防抖(debounce)函数 - 实现节流(throttle)函数 - 实现new 函数 - 实现深拷贝函数 - 实现instanceof函数 - 模拟实现new操作符 - 实现call函数 - 实现apply函数 - 实现bind函数 - 模拟实现Object.create函数 - 实现JS的继承 - 实现JSON.stringify - 实现JSON.parse - 实现Promise.resolve方法 - 实现Promise.reject方法 - 实现Promise.finally方法 - 实现Promise.all方法 - 实现Promise.allSettled方法 - 实现Promise.race方法 - 实现简版的Promise - 实现解析URL的Params方法 - 实现简版模板引擎 - 实现千分位分割 - 实现判断电话号码方法 - 实现判断邮件方法 - 实现判断身份证号方法 - 实现数组的map方法 - 实现数组的reduce方法 - 实现数组的flat(扁平化) - 实现对象扁平化方法 - 实现add方法,满足以下要求 - 实现sleep方法 - 实现方法求两个数组的交集 - 实现函数柯里化 - 实现Array.isArray方法 - 实现双向绑定 - 实现对象数组去重 - 实现判断数据类型的方法 - 基于generator实现async/await - 基于Promise实现Ajax方法 - 实现JSONP跨域 - 实现发布订阅 - 实现观察者模式 - 实现Object.freeze方法 - 实现异步并发数限制 - 实现异步串行和异步并行 - 实现Vue的reactive功能 - 实现简版图片懒加载 - 实现深度对比isEqual方法 - 实现getValue和setValue来获取/设置对应path的值 - 实现按指定长度拆分数组(lodash.chunk方法) - 实现compose方法 - 实现简版redux - 实现const运算符 - 实现管理本地缓存过期的方法 - 实现ES6的extends运算符功能 - 实现setTimeout模拟setInterval方法 - 实现lazyMan方法 - 实现DomToJson方法 - 实现类数组转换为数组方法 - 实现列表转换为树结构方法 - 实现大数相加方法 - 实现JS乱序算法 - 实现JS函数记忆