面试:前端开发工程师。有了很好的初印象,有一定难度,收到offer了。
- (写在前面:面试时间 2022.5月底;现在已离职-公司裁员;)
Q:● 简历上写了 Node,你有 node 开发经验吗?具体做了什么?
Q:● 你们的开发、部署流程是怎样的?
Q:● 你们的测试是自己维护还是?
○ 测试工程师做的
○ 自己没有写 单元测试
Q:● 你可以说一下 js 在浏览器的执行机制吗?同步和异步?
Q:● 宏任务和微任务怎么去检测和触发下一个任务?
Q:● 可以说一下你理解的这个执行机制是什么?
Q:● 说一下 js 中的堆和栈的区别?
Q:● 可以说一下哪些数据类型放在堆,哪些放在栈?
Q:● ES5, ES6 的数据类型分别有哪些?
Q:● Symbol 的作用是什么?你怎么使用的?
Q:● 你说说 Object 和 Map 的区别?
Q:● 说说 Set 和 Array 区别?
Q:● 你说到了去重,Set 如何做到去重?
Q:● 还有其他方式实现去重吗?
Q:● js 的垃圾回收机制是怎样的?
Q:● 你知道内存泄露吗?一般哪些场景会发生内存泄漏?如何去定位内存泄露?
Q:● Nodejs 如何监控 内存泄露?
Q:● 有没有写过 shell 脚本或者 nodejs 监听内存泄露?
Q:● 理解 CPU 的负载和使用率吗?
Q:● 线上运行时环境发生的错误,代码层面如何做一个兜底的处理?第三方库?
Q:● 前端错误上报?(没有问,自己拓展)
Q:● 模块化中, commonjs、esmoudule 的区别?原理上和使用上的区别?引用上的区别?
Q:● Nodejs 使用 Es Module 有哪些方法?
Q:● 有没有碰到过循环引用的问题?
Q:● js 中有哪些异步场景?
Q:● async 返回的是什么?await 返回的是什么?
Q:● promise 有多少种状态?
Q:● 什么是跨域?来源?如何处理?
Q:● 了解过强缓存和协商缓存吗?
Q:● 说一下你项目上的性能优化?前端的,bff 的都可以?
Q:● 前端如何做性能分析?Node端呢?
Q:● 说一说防抖节流?区别?使用场景?
Q:● 一般 web 安全问题遇到过哪些?怎么防范处理?
Q:● 你刚才说道的 http-only,这个东西有什么作用?
- 如果你设置了 http-only,前端再新增 cookie 会发生什么?
Q:● 在 nodejs 端,如何看到请求的来源?
Q:● 后端把 token 给了前端,前端把它放在哪个地方?
Q:● sso 做过吗?
- ● 刚才说道了 token,nodejs 端,如果是使用 session 鉴权,会怎么做呢?
Q:● session 一般存在哪个地方? ○ redis ○ 内存中?
Q:● 简历上有 React,vue,其他的 Ng,jQuery 用过吗?
- 如果有个老项目要迁移成新的技术栈,要保留新的和旧的,从技术实现的方式,怎么做?
Q:● 若有个新的项目技术选型,你会怎么考虑?
Q:● react-native 用过吗?了解吗?
Q:● vue 2.0 和 3.0 的区别?
Q:● vue-2 vs vue-3 区别之 生命周期的变化?
Q:● react 的性能优化?如何避免重复渲染?
Q:● useMemo, useCallback 的使用场景区别?
Q:● 如何避免 style 全局污染?
Q:● React 写过继承测试?e2e 测试?单元测试?
- 一道代码题:看代码给结果:经典的 promise/setTimeout 考察EventLoop 宏任务微任务的题目,要求给出输出结果
- 面试题目量真的很大,说的我口感舌燥;感觉面试官先准备了必须要问的,
- 然后结合你简历问他想问的;
- 考察了很多 Node 服务端相关的知识,看来对这块很重视;
- 考察前端单元测试;
- 虽然我之前没有写过,面试前临时学了2周做了很多笔记,面试官也认可了;
- 说明:先英文面试回答一些基础问题,
- 然后用中文回答后续问题;
- 英文介绍下自己 说说你现在的公司(英文)
- 说说你现在做的项目团队规模(英文)
- 聊聊你的项目,重构后的特点?(英文)
- 项目什么时候开始的,这个项目有多少个人参与?(英文)
Q:● 你现在住那里?南山?宝安?
Q: ● 当前公司介绍,产品介绍,为什么使用 AntD?
Q:● 重新再说说上面的项目
Q: ○ 面向的用户?
Q: ○ 卖软件还是卖服务?
Q: ● 项目有登录吗还是无用户的?怎么做的?
Q: ● 为什么选择 React ?
Q:● 你往后的职业规划计划在那些方面?
Q:● 平时怎么学习的?看书吗?看了什么书?
Q:● 上家公司在上海,为什么离开上海?
Q:● 为什么离开现在公司?
Q:● 理想公司是什么样的?
Q: ● 了解我们公司吗?
Q: ● 你有什么想问我的吗?
Q:● 你当前的薪资是多少,目标薪资是多少?
Q:● 大概什么时候能够到岗?
- 难度不高,关键是前面的英文面试要准备好,表达好,能够对话说清楚想要表达的意思即可;
面试有难度 体验很好 数据类型 前端 面试官 安全问题 产品 难度