Daily-Interview-Question README

The project's README from github.com/Advanced-Frontend/Daily-Interview-Question. As one markdown file: README.md.

Daily-Interview-Question

加入「前端面试互助群」学习小组,搜索公众号「高级前端进阶」,关注即可加入!

工作日每天一道大厂前端面试题,一年后再回头,会感谢曾经努力的自己!

线上版本阅读更流畅,点击阅读


推荐一个不错的前端算法系列,点击查看


推荐扫码使用微信小程序,除了本项目之外,还囊括了算法题、选择题等多种类型题目和详细解析

记住我们的 Slogan:上下班路上刷一点,半年突击进大厂


今日面试题

第 162 题:实现对象的 Map 函数类似 Array.prototype.map

解析:第 162 题


最近汇总

第 161 题:用最精炼的代码实现数组非零非负最小值 index

// 例如:[10,21,0,-7,35,7,9,23,18] 输出 5, 7 最小
function getIndex(arr){
      let index=null;
      ...
      return index;
}

解析:第 161 题


第 160 题:输出以下代码运行结果,为什么?如果希望每隔 1s 输出一个结果,应该如何改造?注意不可改动 square 方法

const list = [1, 2, 3]
const square = num => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(num * num)
    }, 1000)
  })
}

function test() {
  list.forEach(async x=> {
    const res = await square(x)
    console.log(res)
  })
}
test()

解析:第 160 题


第 159 题:实现 Promise.retry,成功后 resolve 结果,失败后重试,尝试超过一定次数才真正的 reject

解析:第 159 题


第 158 题:如何模拟实现 Array.prototype.splice

解析:第 158 题


第 157 题:浏览器缓存 ETag 里的值是怎么生成的

解析:第 157 题


第 156 题:求最终 left、right 的宽度

<div class="container">
    <div class="left"></div>
    <div class="right"></div>
</div>

<style>
  * {
    padding: 0;
    margin: 0;
  }
  .container {
    width: 600px;
    height: 300px;
    display: flex;
  }
  .left {
    flex: 1 2 300px;
    background: red;
  }
  .right {
    flex: 2 1 200px;
    background: blue;
  }
</style>

注:此题和 155 题 left、right 样式有些不同

解析:第 156 题


第 155 题:求最终 left、right 的宽度

<div class="container">
    <div class="left"></div>
    <div class="right"></div>
</div>

<style>
  * {
    padding: 0;
    margin: 0;
  }
  .container {
    width: 600px;
    height: 300px;
    display: flex;
  }
  .left {
    flex: 1 2 500px;
    background: red;
  }
  .right {
    flex: 2 1 400px;
    background: blue;
  }
</style>

解析:第 155 题


第 154 题:弹性盒子中 flex: 0 1 auto 表示什么意思

解析:第 154 题


第 153 题:实现一个批量请求函数 multiRequest(urls, maxNum)


要求如下:

  1. 要求最大并发数 maxNum

  2. 每当有一个请求返回,就留下一个空位,可以增加新的请求

  3. 所有请求完成后,结果按照 urls 里面的顺序依次打出

解析:第 153 题


2019-12-31

第 152 题:实现一个 normalize 函数,能将输入的特定的字符串转化为特定的结构化数据

解析:第 152 题


2019-11-25

第 151 题:用最简洁代码实现 indexOf 方法

解析:第 151 题


2019-11-21

第 150 题:二分查找如何定位左边界和右边界

不使用JS数组API,查找有序数列最先出现的位置和最后出现的位置

解析:第 150 题


2019-11-12

第 149 题:babel 怎么把字符串解析成 AST,是怎么进行词法/语法分析的?

解析:第 149 题


2019-11-01

第 148 题: webpack 中 loader 和 plugin 的区别是什么(平安)

解析:第 148 题


2019-10-31

第 147 题:v-if、v-show、v-html 的原理是什么,它是如何封装的?

解析:第 147 题


2019-10-29

第 146 题:Vue 中的 computed 和 watch 的区别在哪里(虾皮)

解析:第 146 题


2019-10-24

第 145 题:前端项目如何找出性能瓶颈(阿里)

解析:第 145 题


2019-10-22

第 144 题:手写二进制转 Base64(阿里)

解析:第 144 题


2019-10-21

第 143 题:将 '10000000000' 形式的字符串,以每 3 位进行分隔展示 '10.000.000.000'

解析:第 143 题


2019-10-17

第 142 题:(算法题)求多个数组之间的交集(阿里)

解析:第 142 题


2019-10-15

第 141 题:Vue 中的 computed 是如何实现的(腾讯、平安)

解析:第 141 题


2019-10-14

第 140 题:为什么 HTTP1.1 不能实现多路复用(腾讯)

解析:第 140 题


2019-09-17

第 139 题:谈一谈 nextTick 的原理

解析:第 139 题


2019-09-11

第 138 题:反转链表,每 k 个节点反转一次,不足 k 就保持原有顺序(哔哩哔哩)

解析:第 138 题


2019-09-04

第 137 题:如何在 H5 和小程序项目中计算白屏时间和首屏时间,说说你的思路

解析:第 137 题


所有面试题汇总


半月刊


联系我

进阶系列文章汇总如下,觉得不错点个 star,欢迎 加群 互相学习。

https://github.com/yygmind/blog

我是木易杨,公众号「高级前端进阶」作者,跟着我每周重点攻克一个前端面试重难点。接下来让我带你走进高级前端的世界,在进阶的路上,共勉!

image

Daily-Interview-Question (Advanced-Frontend/Daily-Interview-Question)

Searching Database…

这是什么?这是由博主木易杨(微信公众号“高级前端进阶”)持续更新的每日中文前端面试题系列。每一条都给出一道真实的前端面试题,涵盖 JavaScript、CSS、Vue、React 和浏览器原理,并附有链接到详细的文字解答。
这是一门结构化的课程,还是只是一份持续更新的题目列表?这是一份持续更新的列表,而不是课程:工作日会新增一条独立的问答,按顺序编号(目前已超过 #160),条目之间没有固定的学习大纲,也没有必须遵循的先后顺序。
列表是怎么组织的,我应该从哪里开始?每道题都有编号和日期,附一段简短的题目描述,并链接到一个包含完整解答的 Markdown 文件。新读者可以先看两周一期的“半月刊”汇总,以及“壹题所有题目及答案汇总”索引。这些内容把高频题归类整理,方便快速复习,不必逐条滚动浏览每日题目。
除了前端,还会涉及其他方向吗?它还在持续更新吗?没有。范围严格限定在前端(JavaScript、CSS、Vue、React、浏览器缓存、webpack、Babel、Promise、基础算法),不包含后端或移动端内容。项目自 2019 年起持续新增编号条目,目前最新的题目为 #162。
这是给谁看的?主要面向准备应聘国内大型科技公司的前端开发者。很多题目都明确标注了出题的公司,例如 Alibaba、Tencent、Ping An 和 Shopee。
README 里提到的微信小程序是什么?作者还同时运营着一个微信小程序,与微信公众号“高级前端进阶”配套。小程序提供了本仓库之外的额外算法题和选择题,并附有详细解析。
除了在 README 里滚动浏览,有没有更方便的方式看完所有题目?有的。README 中提供了完整题目列表的在线阅读版链接,比直接在 GitHub 页面上浏览更顺畅、更方便。
它包含动手编写代码的练习,还是只有概念性的问答?两者都有。除了概念性问题,还有好几条是动手编码题,例如手写实现 Array.prototype.splice、编写一个限制并发数的批量请求函数,或求多个数组的交集。
Size
0.2 MB
Stars
27.3K
Updated
CommitNov 09
Age
7y
Commits · 90 Days