前端手写题集锦 use js 记录大厂笔试,面试常考手写题, 致力打造最全的前端JavaScript手写题题库和答案的最优解注意,本仓库目前不包含算法相关的题目,比如********上的题,只包含js的手写题,********相关的题目也会整理,计划中,还未定方案Github:https://github.com/Sunny-117/js-challenges谢谢您的star,您的star是我更新的动力里面有答案,为了让你们有一个参考,不过非常希望你们能提供自己的思路,指出答案中存在的问题,复杂度优化等等, 期待你们的contribute, 想来一起维护这个项目,可以联系我,成为contributor主要是让大家讨论出最优解,然后merge,一起贡献这个项目,有些答案有点问题,所以我给出的答案仅作参考,也欢迎发现的小伙伴提PR贡献此项目提PR就行思考很久,用issue形式收集各种手写题,并让小伙伴们讨论题解JavaScript HOT 100 题中大厂面试,最常考的100个题,每一题都非常具有代表性,想要准备面试突击的同学,优先看这些题,祝在座的每一位都能拿到满意的offer实现Primise.allJSON2DOM = react的render函数树形结构转成列表列表转成树形结构Array.prototype.flatinstanceofcall apply bindArray.prototype.map正则表达式模版字符串lodash.get深拷贝寄生组合式继承发布订阅者模式实现 Promise (hot)完整实现Promise A+实现Primise.all实现Promise.prototype.finally实现Promise.allSettled实现Primise.race实现 Promise.prototype.catchPromise.resolvePromise.rejectPromise 周边场景题(hot)交通灯封装异步的fetch,使用async await方式来使用repeat(console.log, 5, 1000)封装一个工具函数输入一个promiseA返回一个promiseB如果超过1s没返回则抛出异常如果正常则输出正确的值请求5s未完成就终止实现一个sleep函数js每隔一秒打印1,2,3,4,5使用 setTimeout 实现 setIntervalpromise实现图片异步加载使用Promise封装AJAX请求我们能反过来使用 setinterval 模拟实现 settimeout 吗?异步任务:依次发送3次网络请求,拿到服务器数据实现网络请求超时判断,超过三秒视为超时promise中断请求给定一系列的api,测量上传速度(实现的时候用的GET请求)并选择一个加载时间最短的apisettimeout系统补偿时间setTimeout准时请求五秒未完成则终止并发多个请求,返回先得到response的。函数输入为url数组,输出为第一个返回的response的结果JS异步数据流,实现并发异步请求,结果顺序输出Promise串行处理高并发, 100 条数据,带宽为 10, 跑满带宽设计一个简单的任务队列, 要求分别在 1,3,4 秒后打印出 "1", "2", "3";实现有并行限制的 Promise 调度器实现 Scheduler有并发限制的Promise.all(ts类型)实现 如果上一次的没请求完,之后的就无响应使用 Promise 实现每隔三秒输出时间使用 Promise 改写回调地狱设计一个函数,该函数的参数为可同时发送请求的大小,返回一个函数,该函数的参数为要请求的url。 实现的效果为,同时发送n个请求,当有请求返回后往请求队列里push新的请求,并输出刚刚结束的请求的返回值Promise.retry 超时重新请求,并在重试一定次数依然失败时输出缓存内容写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b 的时间,然后写一个 myClear,停止上面的 mySetInterValJavaScript 常考手写题产生一个不重复的随机数组await async 如何实现使用递归完成 1 到 100 的累加打印出 1~10000 以内的对称数实现一个字符串匹配算法indexOf请实现一个模块 math,支持链式调用math.add(2,4).minus(3).times(2);手写用 ES6proxy 如何实现 arr[-1] 的访问(滴滴2020)有一堆整数,请把他们分成三份,确保每一份和尽量相等(11,42,23,4,5,6 4 5 6 11 23 42 56 78 90)之字形打印矩阵数组中的最大值尾递归(斐波那契数列实现简单路由封装一个localstorage的setItem和getItem方法1-1000回文数随机生成字符串判断一个字符串是否为驼峰字符串, judge('ByteDance','BD') -> true judge('Bytedance','BD') -> false压缩字符串Map场景题输入50a6we8y20x 输出50个a,6个we,8个y,20个x手写definePropertyString string 值一样返回true Object Object 返回true function function 都是声明的一个新的变量 返回false对输入的字符串:去除其中的字符'b';去除相邻的'a'和'c'用一行代码,将数组中的字符串和字符串对象(new String(123))直接判定出来before实现一下 console.log实现(5).add(3).minus(2)功能将十进制数字转为二进制数字字符串封装remove child.remove()销毁自身字符串中字母的出现次数输出一个等腰三角形实现一个函数a,使其奇数次调用时返回1,偶数次调用时返回2(不能使用全局变量)求 最接近的值不用循环求和连续赋值操作输入一串字符串,根据字符串求出每个字母的数量并返回结果对象。(数字为1时可省略创建包含10个1的数组 多种方法['zm', 'za', 'b', 'lm', 'ln', 'k']["0->2", "4->5", "7", "13", "15->16"]['ab', 'c', 'ab', 'd', 'c'] => ['ab1', 'c1' ,'ab2', 'd', 'c2']移除空属性判断两个对象是否相等一个数组,找出每个数组元素右侧第一个比当前数大的数的下标,时间复杂度O(N)寻找出现次数最多的三个标签素数实现日期格式化函数实现 jsonpURL反转解析 URL Params 为对象调用计数器(支持重置)颜色生成JavaScript怎么清空数组判断A、B数组的包含关系(值和数量),A属于B返回1,B属于A返回2,两者相等返回0,其他返回-1对象的合并实现一个 无限延伸数组)多行字符串转二维数组请实现一个通用的Array解构赋值数组合并数组交集,并集,差集多维数组全排列判断对象是否存在循环引用实现函数solution(arr, k)逆对象扁平对象扁平化实现 执行一次的函数链式调用偏函数实现管道函数手写事件代理(委托)数据类型判断类数组转数组预加载图片懒加载数组去重防抖 节流函数组合 compose redux-saga koa 洋葱模型sum(x,y)和sum(x)(y)curry柯里化设计模式相关观察者模式发布订阅者模式树-场景题(hot)DOM2JSONJSON2DOM = react的render函数计算目录树的深度树形结构获取路径名树形结构转成列表列表转成树形结构对象树遍历获取树对象属性查找json中的children路径对象字符串转化成树形结构判断有无符合路径和 -> 打印所有路径获取树结构中的name:getName实现 JS 原生方法Array.prototype.flatArray.prototype.forEachArray.prototype.mapArray.prototype.filterArray.prototype.reduceArray.prototype.fillArray.prototype.includesArray.prototype.pushArray.prototype.unshiftArray.prototype.copyArray.prototype.getLevel实现es6的set集合实现es6的map集合String.prototype.zpadStartObject.assignObject.isJSON.stringifyJSON.parsecall apply bindinstanceoftrim实现newString.prototype.repeatString.prototype.includesJS 库函数实现lodash.getlodash.chunkjs utils判断一个对象是否是isPlainObject手写 nodejs 模块promisify正则相关正则表达式模版字符串正则判断手机号,qq,颜色,邮箱字符串的大小写取反检验字符串首尾是否含有数字去除字符串空格去除字符串中的字母正则 驼峰转换对象key的驼峰转下划线判断字符串中是否存在连续的三个数((2+3)+(3*4))+2---->['(2 + 3)+(3 * 4)', '2 + 3', '3 * 4']排序算法冒泡排序选择排序快速排序插入排序归并排序基数排序计数排序希尔排序桶排序堆排序实现自定义HOOKHooks怎么封装手势逻辑Hooks实现移动端的滑动轮播插件如何用 Hooks 模拟 componentDidMount 与componentWillUnmount实现一个useBodyScrollLock ,当出现弹窗时 阻止背景滚动ts 实现 hooks: useInterval实现 useQuery实现useRequest组件设计题(Vue/React/JS均可)全选轮播图根据response渲染table歌词滚动功能(hot)实现一个 百度搜索框 (搜索提示)实现todos计时器或倒计时组件设计一个公会入驻信息提交页编码实现宽高不相同图片的自适配排列列表子元素顺序反转遍历树组件选项卡拖拽HTML CSS 手写题实现圆形环状进度条
点赞 27
评论 5
全部评论

相关推荐

牛客48826091...:哥们胸肌挺好看
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务