面经详情

面试:前端开发工程师。有了很好的初印象,有一定难度,收到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 如何做到去重?
  • 如果没有 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 的使用场景区别?
  • 如果是 class 组件,如何做性能优化? 
Q:● 如何避免 style 全局污染?
Q:● React 写过继承测试?e2e 测试?单元测试?
  • 一道代码题:看代码给结果:经典的 promise/setTimeout  考察EventLoop 宏任务微任务的题目,要求给出输出结果
  1. 面试题目量真的很大,说的我口感舌燥;感觉面试官先准备了必须要问的,
  2. 然后结合你简历问他想问的;
  3. 考察了很多 Node 服务端相关的知识,看来对这块很重视;
  4. 考察前端单元测试;
  5. 虽然我之前没有写过,面试前临时学了2周做了很多笔记,面试官也认可了;
  • 说明:先英文面试回答一些基础问题,
  • 然后用中文回答后续问题;
  1. 英文介绍下自己 说说你现在的公司(英文) 
  2.  说说你现在做的项目团队规模(英文) 
  3.  聊聊你的项目,重构后的特点?(英文) 
  4.  项目什么时候开始的,这个项目有多少个人参与?(英文)
Q:● 你现在住那里?南山?宝安?
Q: ● 当前公司介绍,产品介绍,为什么使用 AntD? 
Q:● 重新再说说上面的项目 
Q:     ○ 面向的用户?
Q:     ○ 卖软件还是卖服务?
Q: ● 项目有登录吗还是无用户的?怎么做的?
Q: ● 为什么选择 React ?
Q:● 你往后的职业规划计划在那些方面?
Q:● 平时怎么学习的?看书吗?看了什么书?
Q:● 上家公司在上海,为什么离开上海? 
Q:● 为什么离开现在公司? 
Q:● 理想公司是什么样的?
Q: ● 了解我们公司吗?
Q: ● 你有什么想问我的吗?
Q:● 你当前的薪资是多少,目标薪资是多少?
Q:● 大概什么时候能够到岗?
  • 难度不高,关键是前面的英文面试要准备好,表达好,能够对话说清楚想要表达的意思即可;

相关推荐

5983
前端开发工程师
确定通过确定通过
项目经验 介绍项目1、域名解析成 ip 地址4.2、客户端发送一个带有 SYN 标志的数据包给服务端(三次握手,第一次)4.3、服务端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息(三次握手,第二次)4.4、客户端再回传一个带 ACK 标志的数据包,代表握手结束,连接成功(三次握手,第三次)4.5、服务端处理数据并返回数据4.6、客户端请求关闭连接(四次挥手,第一次)4.7、服务端确认是否还有数据要传输(四次挥手,第二次)4.8、服务端没有要传输的数据了,准备关闭连接(四次挥手,第三次)4.9、客户端断开连接(四次挥手,第四次)4.10、浏览器解析 HTML ,生成 DOM树,解析 CSS ,生成 CSS 规则树4.11、DOM 树和 CSS 规则树合并成渲染树,开始渲染4.12、执行 JavaScript 脚本setTimeout分页渲染,这个方法就是,把10w按照每页数量limit分成总共Math.ceil(total / limit)页,然后利用setTimeout,每次渲染1页数据,这样的话,渲染出首页数据的时间大大缩减了requestAnimationFrame,使用requestAnimationFrame代替setTimeout,减少了重排的次数,极大提高了性能虚拟列表 就是根据容器可视区域的列表容积数量,监听用户滑动或滚动事件,动态截取长列表数据中的部分数据渲染到页面上,动态使用空白站位填充容器上下滚动区域内容,模拟实现原生滚动效果懒加载 判断blank出现在视图上,可以使用getBoundingClientRect方法获取top属性重排也叫回流,当元素因为规模尺寸,布局,隐藏等改变而需要重新构建时则成为重排。 重绘:一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局则叫重绘。 重绘不一定重排,但是重排一定重绘。浏览器下载完毕所有的页面组件--包括 html 标记,js,css ,图片后,会解析并生成两个内部的数据结构:- DOM树- 渲染树DOM 树都很熟悉了,而渲染树就是 DOM 树中每一个节点所对应的 frame 或者 box 所组成的(不包括隐藏的 DOM 元素)。DOM 的变化影响了元素的几何属性的时候,比如大小宽高,从而影响了其他元素的几何属性和位置,这个时候浏览器就需要重新构造渲染树,这个过程就叫做重排,完成重排以后,浏览器再重新绘制受影响的部分到屏幕中,这个就叫做重绘。有的的变化不会影响几何属性的,比如改变背景色,就只会发生重绘,而不需要重排,因为元素的布局并没有发生改变,但这两种操作都是代价昂贵的,虽然浏览器本身会进行优化,但是在编写代码的时候仍然需要最少的去进行这样的操作。一、数据问题二、是否会有组件嵌套的情况三、考虑到可扩展性需要在可扩展的地方加入 slot四、循环引用问题五、v-for key 的参数相同报错...查看更多
包含5个问题,0个回答
Q:项目经验
2023-06-29 发布

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网亿磐系统(深圳)有限公司亿磐系统(深圳)有限公司面试经验亿磐系统(深圳)有限公司面试经验:面试:前端开发工程师。有了很好的初印象,有一定难度,收到offer了。