[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2898":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":18,"lastSyncTime":34,"discoverSource":35},2898,"Daily-Interview-Question","Advanced-Frontend\u002FDaily-Interview-Question","Advanced-Frontend","我是依扬（木易杨），公众号「高级前端进阶」作者，每天搞定一道前端大厂面试题，祝大家天天进步，一年后会看到不一样的自己。","https:\u002F\u002Fmuyiy.cn\u002Fquestion\u002F",null,"JavaScript",27429,3250,991,266,0,1,2,7,4,45,false,"master",true,[26,27,28,29,30],"css","interview","javascript","react","vue","2026-06-12 02:00:44","# Daily-Interview-Question\n\n加入「前端面试互助群」学习小组，搜索公众号「高级前端进阶」，关注即可加入！\n\n工作日每天一道大厂前端面试题，一年后再回头，会感谢曾经努力的自己！\n\n[线上版本阅读更流畅，点击阅读](https:\u002F\u002Fmuyiy.cn\u002Fquestion\u002F)\n\n\u003Cbr\u002F>\n\n\n\n[推荐一个不错的前端算法系列，点击查看](https:\u002F\u002Fgithub.com\u002FsisterAn\u002FJavaScript-Algorithms)\n\n\u003Cbr\u002F>\n\n\n\n推荐扫码使用微信小程序，除了本项目之外，还囊括了算法题、选择题等多种类型题目和详细解析\n\n记住我们的 Slogan：上下班路上刷一点，半年突击进大厂\n\n\n\n\u003Cimg src=\"http:\u002F\u002Fresource.muyiy.cn\u002Fimage\u002F20200106214930.jpg\" height=\"250px\">\n\n\u003Cbr\u002F>\n\n\n\n\n## 今日面试题\n\n第 162 题：实现对象的 Map 函数类似 Array.prototype.map\n\n解析：[第 162 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F431)\n\n\u003Cbr\u002F>\n\n\n\n\n## 最近汇总\n\n第 161 题：用最精炼的代码实现数组非零非负最小值 index \n\n```js\n\u002F\u002F 例如：[10,21,0,-7,35,7,9,23,18] 输出 5, 7 最小\nfunction getIndex(arr){\n      let index=null;\n      ...\n      return index;\n}\n```\n\n\n解析：[第 161 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F421)\n\n\u003Cbr\u002F>\n\n\n\n第 160 题：输出以下代码运行结果，为什么？如果希望每隔 1s 输出一个结果，应该如何改造？注意不可改动 square 方法\n\n```js\nconst list = [1, 2, 3]\nconst square = num => {\n  return new Promise((resolve, reject) => {\n    setTimeout(() => {\n      resolve(num * num)\n    }, 1000)\n  })\n}\n\nfunction test() {\n  list.forEach(async x=> {\n    const res = await square(x)\n    console.log(res)\n  })\n}\ntest()\n```\n\n\n\n解析：[第 160 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F389)\n\n\u003Cbr\u002F>\n\n\n\n第 159 题：实现 `Promise.retry`，成功后 `resolve` 结果，失败后重试，尝试超过一定次数才真正的 `reject`\n\n\n\n解析：[第 159 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F387)\n\n\u003Cbr\u002F>\n\n\n\n第 158 题：如何模拟实现 Array.prototype.splice\n\n\n\n解析：[第 158 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F384)\n\n\u003Cbr\u002F>\n\n\n\n第 157 题：浏览器缓存 ETag 里的值是怎么生成的\n\n解析：[第 157 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F383)\n\n\u003Cbr\u002F>\n\n\n\n第 156 题：求最终 left、right 的宽度\n\n```js\n\u003Cdiv class=\"container\">\n    \u003Cdiv class=\"left\">\u003C\u002Fdiv>\n    \u003Cdiv class=\"right\">\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003Cstyle>\n  * {\n    padding: 0;\n    margin: 0;\n  }\n  .container {\n    width: 600px;\n    height: 300px;\n    display: flex;\n  }\n  .left {\n    flex: 1 2 300px;\n    background: red;\n  }\n  .right {\n    flex: 2 1 200px;\n    background: blue;\n  }\n\u003C\u002Fstyle>\n```\n\n注：此题和 155 题 left、right 样式有些不同\n\n\n\n解析：[第 156 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F382)\n\n\u003Cbr\u002F>\n\n\n\n第 155 题：求最终 left、right 的宽度\n\n```js\n\u003Cdiv class=\"container\">\n    \u003Cdiv class=\"left\">\u003C\u002Fdiv>\n    \u003Cdiv class=\"right\">\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003Cstyle>\n  * {\n    padding: 0;\n    margin: 0;\n  }\n  .container {\n    width: 600px;\n    height: 300px;\n    display: flex;\n  }\n  .left {\n    flex: 1 2 500px;\n    background: red;\n  }\n  .right {\n    flex: 2 1 400px;\n    background: blue;\n  }\n\u003C\u002Fstyle>\n```\n\n\n\n解析：[第 155 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F381)\n\n\u003Cbr\u002F>\n\n\n\n第 154 题：弹性盒子中 flex: 0 1 auto 表示什么意思\n\n解析：[第 154 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F380)\n\n\u003Cbr\u002F>\n\n\n\n第 153 题：实现一个批量请求函数 multiRequest(urls, maxNum)\n\n\u2028要求如下：\n\n1. 要求最大并发数 maxNum\n\n2. 每当有一个请求返回，就留下一个空位，可以增加新的请求\n3. 所有请求完成后，结果按照 urls 里面的顺序依次打出\n\n\n\n解析：[第 153 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F378)\n\n\u003Cbr\u002F>\n\n\n\n2019-12-31\n\n> 第 152 题：实现一个 normalize 函数，能将输入的特定的字符串转化为特定的结构化数据\n\n\n\n解析：[第 152 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F331)\n\n\u003Cbr\u002F>\n\n\n\n\n2019-11-25\n\n> 第 151 题：用最简洁代码实现 indexOf 方法\n>\n\n\n\n解析：[第 151 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F321)\n\n\u003Cbr\u002F>\n\n\n2019-11-21\n\n> 第 150 题：二分查找如何定位左边界和右边界\n>\n> 不使用JS数组API，查找有序数列最先出现的位置和最后出现的位置\n\n\n\n解析：[第 150 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F320)\n\n\u003Cbr\u002F>\n\n\n\n2019-11-12\n\n> 第 149 题：babel 怎么把字符串解析成 AST，是怎么进行词法\u002F语法分析的？\n\n解析：[第 149 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F315)\n\n\u003Cbr\u002F>\n\n\n\n2019-11-01\n\n> 第 148 题： webpack 中 loader 和 plugin 的区别是什么（平安）\n\n\n\n解析：[第 148 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F308)\n\n\u003Cbr\u002F>\n\n\n\n2019-10-31\n\n> 第 147 题：v-if、v-show、v-html 的原理是什么，它是如何封装的？\n\n\n\n解析：[第 147 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F307)\n\n\u003Cbr\u002F>\n\n\n\n2019-10-29\n\n> 第 146 题：Vue 中的 computed 和 watch 的区别在哪里（虾皮）\n\n\n\n解析：[第 146 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F304)\n\n\u003Cbr\u002F>\n\n\n\n2019-10-24\n\n> 第 145 题：前端项目如何找出性能瓶颈（阿里）\n\n\n\n解析：[第 145 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F300)\n\n\u003Cbr\u002F>\n\n\n\n2019-10-22\n\n> 第 144 题：手写二进制转 Base64（阿里）\n\n\n\n解析：[第 144 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F299)\n\n\u003Cbr\u002F>\n\n\n\n2019-10-21\n\n> 第 143 题：将 '10000000000' 形式的字符串，以每 3 位进行分隔展示 '10.000.000.000'\n\n\n\n解析：[第 143 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F296)\n\n\u003Cbr\u002F>\n\n\n\n2019-10-17\n\n> 第 142 题：（算法题）求多个数组之间的交集（阿里）\n\n\n\n解析：[第 142 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F293)\n\n\u003Cbr\u002F>\n\n\n\n2019-10-15\n\n> 第 141 题：Vue 中的 computed 是如何实现的（腾讯、平安）\n\n\n\n解析：[第 141 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F291)\n\n\u003Cbr\u002F>\n\n\n\n2019-10-14\n\n> 第 140 题：为什么 HTTP1.1 不能实现多路复用（腾讯）\n\n\n\n解析：[第 140 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F290)\n\n\u003Cbr\u002F>\n\n\n\n2019-09-17\n\n> 第 139 题：谈一谈 nextTick 的原理\n\n\n\n解析：[第 139 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F281)\n\n\u003Cbr\u002F>\n\n\n\n2019-09-11\n\n> 第 138 题：反转链表，每 k 个节点反转一次，不足 k 就保持原有顺序（哔哩哔哩）\n\n\n\n解析：[第 138 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F278)\n\n\u003Cbr\u002F>\n\n\n\n2019-09-04\n\n> 第 137 题：如何在 H5 和小程序项目中计算白屏时间和首屏时间，说说你的思路\n\n\n\n解析：[第 137 题](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fissues\u002F272)\n\n\u003Cbr\u002F>\n\n\n\n\n## 所有面试题汇总\n\n-   [壹题所有题目及答案汇总](https:\u002F\u002Fgithub.com\u002FAdvanced-Frontend\u002FDaily-Interview-Question\u002Fblob\u002Fmaster\u002Fdatum\u002Fsummary.md)\n\n\u003Cbr\u002F>\n\n\n\n## 半月刊\n\n- [前端 100 问：能搞懂 80% 的请把简历给我](https:\u002F\u002Fgithub.com\u002Fyygmind\u002Fblog\u002Fissues\u002F43)\n- [【半月刊 1】前端高频面试题及答案汇总](https:\u002F\u002Fjuejin.im\u002Fpost\u002F5c6977e46fb9a049fd1063dc)\n- [【半月刊 2】前端高频面试题及答案汇总](https:\u002F\u002Fjuejin.im\u002Fpost\u002F5c7bd72ef265da2de80f7f17)\n- [【半月刊 3】前端高频面试题及答案汇总](https:\u002F\u002Fjuejin.im\u002Fpost\u002F5c9ac3f66fb9a070e056718f)\n- [【半月刊 4】前端高频面试题及答案汇总](https:\u002F\u002Fjuejin.im\u002Fpost\u002F5cb3376bf265da039c0543da)\n\n\u003Cbr\u002F>\n\n\n\n## 联系我\n\n进阶系列文章汇总如下，觉得不错点个 star，欢迎 **加群** 互相学习。\n\n> [https:\u002F\u002Fgithub.com\u002Fyygmind\u002Fblog](https:\u002F\u002Fgithub.com\u002Fyygmind\u002Fblog)\n\n我是木易杨，公众号「高级前端进阶」作者，跟着我**每周重点攻克一个前端面试重难点**。接下来让我带你走进高级前端的世界，在进阶的路上，共勉！\n\n![image](http:\u002F\u002Fresource.muyiy.cn\u002Fimage\u002F20200123162151.png)\n","该项目旨在帮助前端开发者通过每日练习大厂面试题来提升技能，由公众号「高级前端进阶」作者依扬（木易杨）维护。它提供了一个持续更新的题库，涵盖CSS、JavaScript、React和Vue等技术领域的问题，每个问题都附有详细的解答思路与代码示例。特别适合正在准备前端岗位面试或者希望在日常工作中不断提高自身技术水平的程序员使用。用户可以通过关注公众号加入学习小组，并利用提供的微信小程序随时随地进行学习。","2026-06-11 02:51:32","top_language"]