27 届前端 5.30 合并两场面试面经

## 时长 70 分钟 北京合思招聘系统

### 1.自我介绍环节

### 2.做题环节(20 分钟左右)

有 22 道选择(html,css,js,数据结构),一道算法题:字符串去重,我和面试官简单说了一下思路(new Set),然后他让我随便写一点交卷了

### 3.项目,场景和八股环节(这个环节持续太长了,有些我实在是忘了)

1.你是如何做到首屏优化的

2.讲讲 CI/CD 是如何实现的

3.项目中有使用过 webpack 和 vite 吗

4.webpack 和 vite 有什么区别

5.有没有使用过什么状态管理工具

6.项目使用了什么缓存机制

这里我展开讲讲。关于缓存数据,蜀黍使用了缓存头(Cache-Control)和 localStorge。项目中使用了 Promise.all 来进行并发请求,同时从服务器和本地缓存请求数据

7.怎么获取的缓存数据

localStorge,状态码 304

8.缓存的过期时间

9.NextJS 中如何设置代码在客户端运行

10.NextJS 如何设置服务端运行(好像是这个问法)

11.useEffect 中如何进行数据请求(丝滑切换至场景题)

12.如果不同 useEffect 中相互依赖过多怎么办(反问面试官,竟然是退化至使用类式组件)

13.如果我想让我的 useRef 使用外部的 props 应该怎么办(forwardRef)

14.当我的父组件将一个可能会经常变化的 props 传递给子组件时,应该怎么办(useMemo)

15.我想全局管理 props,并且防止出现 props drill 的问题,应该怎么办(useContext)

16.我想使用 useRef 来实现一个可以返回窗口顶部的功能,应该怎么实现,使用哪些 API

17.我想将一个二维数组转换为一维数组怎么办

18.如果我的二维数组中不完全都是数组怎么办(instanceof、Array.isArray)

19.实现 add(1)(2) === 3 (函数柯里化)

20.如何实现 string 和 number 之间的相互转换

21.如何改变 this 的指向

22.你有没有用过什么 ES6 的新特性

23.Promise 打印顺序

```javascript
const promise = new Promise((resolve, reject) => {
  console.log(1)
  resolve()
  console.log(2)
})

promise.then(() => {
  console.log(3)
})

console.log(4)
```

24.有没有使用过 typeof

25.flex 布局中如何实现水平垂直居中

26.如何消除 float 带来的影响

27.给定一个完整的 URL,如何获取其查询参数

28.React 19 和 React 18 有什么区别

29.项目中是否有采用什么对静态资源的优化

可能还有,但是暂时想不起来了

## 时长 15 分钟 洋葱学园

1.对于一个列表,我们通常会给其添加一个 key,可以不添加吗,如果不添加是否有什么问题?

2.对于一个 H5 页面加载过慢,如何优化

3.将 URL 输入搜索栏,浏览器会做什么

4.如何实现进入视窗才进行懒加载

5.如何在一个 JS 文件中白屏时返回 Loading 组件(我直接说了 React 和 NextJS 中如何实现哈哈)

6.移动端适配
7.如何处理重复的请求(本人说了 axios cancelToken、防抖和节流解决这个问题)

我确实记得应该还有,但是想不起来(
全部评论
好难
点赞 回复 分享
发布于 06-24 11:13 云南

相关推荐

大学毕业以后很少用牛客了,当年和各位一样,天天抱着牛客刷题、找面经、求内推、吐槽面试经历……工作也有些年头了,兜兜转转换过几家公司,大大小小面试经历上百场是有的,拿到大大小小 offer 也不计其数。分享一点自己的经验,希望能帮助到各位。1. 失败是大概率事件,记得放平心态最近看到很多「投了很多公司都没回信」「简历投了被秒拒」「面试到最后一轮还是挂了」……诸如此类的动态。个人的经验是,找工作失败十有八九。•岗位已经招够了,但忘记下掉,投就是秒挂。(相信我,HR 也不爱上班)不代表你水平不行。•面试官手上有好几个选择,凭感觉选了一个,剩下的全都挂掉,不代表你水平不行。•岗位要求某项技能,但你简历里没有体现,不管你会不会,为了快速筛选只能把你挂掉,不代表你水平不行。……我被拒掉的次数,比拿到 offer 的数量多得多,这很正常。「你并不弱于人,offer 永远在下一家」不这样想的话,很容易就被不断到来的拒绝邮件击溃。2. 如果觉得自己面试技巧很烂,那广撒网试试面试是有技巧的,如何让面试官快速捕捉到你的能力,如何组织语言把你的思路提供给对方,都是需要训练的。最简单的训练方法,就是广撒网,在实战中训练。不管这家公司你最终会不会去,投就完事了。有面试机会权当练习也无妨,既能巩固背的八股文,又能锻炼表达能力;最重要的是,还不花钱。我这辈子都不会去的一家公司,就是某为。即使知道自己肯定不会去,但我还是参与了整个面试过程。(甚至拿到过 offer)3. 面试的一些现实了解一个人是非常困难的,通过短短几十分钟的面试了解一个人,就更是难上加难。所以,面试存在很多「眼缘」。你和面试官能不能聊得来,面试官感受如何,这些都会影响面试结果。有时候明明答得不错,结果还是过不了,很有可能是「运气」没到。所以没必要纠结已经失败的面试,积极准备后面的机会。总得来说:流畅的沟通,礼貌的对话,保持真诚,很重要。遇到过一些校招生,面试确实不太礼貌。面试官和你无冤无仇,基本的尊重还是要给到的。讲话要真诚且坚定,撒谎欺骗什么的,只能说连进入社会的基本资格都不具备。4. 关于内推对于大公司来说,内推与否确实很难讲是不是有用;小公司内推作用可能会大一点。大厂内推现在唯一不同,顶多是内推的人帮你查一查进度什么的,并不会让你有其他优势。所以不用迷信内推,不如专注于自己的简历和经历,提升水平。5. 关于 AI老实说,我现在写代码也会用 copilot。遇到问题,用 Google / ChatGPT 基本 half half。但如果笔试、面试 明确严禁 AI 辅助,我建议还是老实一点。一方面是提升自己的真实水平很重要,另一方面是被抓到,后果可能会很严重。越来越多企业加入诚信联盟,这种面试作弊的行为,会不会被企业拉入黑名单,很难讲。多一事不如少一事,打铁还需自身硬。其它的暂时还没想到,想到以后再聊吧……祝各位秋招顺利,找到心仪的工作。
点赞 评论 收藏
分享
评论
4
7
分享

创作者周榜

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