一些常见的JS手写题汇总,包括排序算法,数组字符串,对象函数和异步编程
- 冒泡排序
- 插入排序
- 选择排序
- 快速排序
- 归并排序
- 实现Object.create
- 实现Object.entries
- 实现Object.fromEntries
- 实现Object.keys
- 实现Object.values
- 实现Object.is
- 实现Object.assign
- 实现new
- 实现instancePf
- 实现flat函数
- 实现寄生组合继承
- 判断对象层数
- 判断对象是否环引用
- 虚拟dom转换
- 列表和树型结构转换
- 实现apply方法
- 实现call方法
- 实现bind方法
- 实现防抖节流
- 实现一个判断type的函数
- 实现深浅克隆函数
- 实现compose函数
- 实现currying函数
- 实现forEach方法
- 实现map方法
- 实现filter方法
- 实现every方法
- 实现some方法
- 实现reduce方法
- 实现findIndex方法
- 实现find方法
- 实现fill方法
- 实现includes方法
- 实现join方法
- 实现flat方法
- 实现splice方法
- 实现数组去重
- 实现一个数组打乱函数
- 产生一个不重复的随机数组-
- 实现slice方法
- 实现substr方法
- 实现substring方法
- 实现trim方法
- 实现大数的加乘
- 实现一个函数可以解析url
- 实现模板引擎解析
- 实现千分位格式化
- 实现手机号的分割
- 实现promise (包括all race any allSettled resolve reject六个方法)
- setTimeOut和setInterval的互相实现
- 设计一个并发器
- 设计一个发布订阅者函数
- 设计一个异步串行函数
- 设计一个LazyMan函数
- 封装一个工具函数输入一个promiseA返回一个promiseB如果超过1s没返回则抛出异常如果正常则输出正确的值-
- 请求5s未完成就终止
- 异步任务:依次发送3次网络请求,拿到服务器数据
- 实现网络请求超时判断,超过三秒视为超时
- promise中断请求
- 给定一系列的api,测量上传速度(实现的时候用的GET请求)并选择一个加载时间最短的api
- 处理高并发, 100 条数据,带宽为 10, 跑满带宽
- 实现 如果上一次的没请求完,之后的就无响应
- Promise.retry 超时重新请求,并在重试一定次数依然失败时输出缓存内容
请实现一个模块 math,支持链式调用math.add(2,4).minus(3).times(2);