九月份前端面试记录
条评论九月份前端面试记录
奇虎360
- ES6:promise、async await、迭代器、展开运算符
- 前端项目技术选型要考虑的点
- 取消未完成的网络请求
- iframe安全性问题
- nodejs有哪些常用的原生库以及常用方法
- 关于立即执行函数
- 关于react hooks
- 如何做前端资源预加载
- css命名规范(比如BEM规范)
- nodejs事件循环机制
- addEventListner方法的参数及应用场景
- HTTP状态码301、302、304含义以及应用场景
360的面试官是文蔺,人非常好,聊天过程中得知他负责周五的起舞周刊,见到已经看了三年的公众号的作者,感到非常荣幸。
用友
- 关于js迭代器
- promise
- 展开运算符
用友一面的面试官属于技术专家型,问问题会刨根问底,一定要把原理讲清楚才行。问的问题大多是些常用的语言特性和框架特性,平时应用这些特性时尽量把原理搞懂就好。二面是领导面,会根据做过的项目问问题,主要考察项目能力、沟通协作能力等等。
美团
- 强缓存与协商缓存
- js实现括号匹配算法
- js实现二叉树的广度优先遍历
美团一面主要考察对语言特性的掌握,二面会考一些简单的数据结构与算法。
快手
- 用原生js实现bind方法(不允许用call、apply)
- 用原生js实现reduce方法
- 用原生js实现一个promise
- react hook
- typescript
- flex布局
- 用css画一个心
- promise的用法(假定一个业务场景,要求用promise实现方案)
- 封装一个受控组件
- 用react hooks实现无状态组件的componentDidMount、componentDidUpdate生命周期函数
- 用js实现一个函数求解整数N,N满足N%2 === 1,N%3 === 2,N%5 === 4,N%6 === 5,N%7 === 0
- 用ts实现函数caller,接收一个函数作为第一个参数,其返回值类型、其他参数类型由接收的函数参数决定
个人认为快手面试难度较大,会假定一些不太好解决的业务场景,让面试者手写代码给出解决方案。从基础到高级特性到底层原理再到复杂业务场景都会考。
阿里巴巴
- 设计模式(工厂模式、发布订阅模式、等等)
- 模块化的底层原理(import和commonjs实现原理上的区别)
- async await promise的底层原理
- 性能优化(加载优化、渲染优化、滚动条等等)
- 解决跨域的多种办法
- 显示器刷新频率是多少
- js异步编程的方法
- react的最新特性
- 开发过程中遇到的难以解决的问题以及解决办法
- 关于内存泄漏
阿里一面会考察工作中实际解决问题的能力,具体形式就是针对做过的项目来问,让面试者详细介绍一个项目,然后针对项目中遇到的问题和面试者认为工作中的亮点来问。然后还会问一些关于团队协作的问题,比如与其他前端同事如何合作,代码版本如何管理,与后端同事何如沟通协作等。二面考察对知识的掌握,从基础到高级特性都会问。
字节跳动
- this指向
- 全局this指向
- 普通函数中this指向
- 箭头函数中this指向
- 对象方法中this指向
- 定时器中this指向
- call、apply、bind
- webpack的
从现场出来没有及时整理,现在有点忘差不多了。考的东西比较基础,建议把犀牛书或者高程刷得比较通透,再多刷一些网上的笔试题和面试题。
总结
- 关于语言基础:
-