一面
自我介绍
说一个项目
- 说一下实习做的工作吧
- 问了一下项目技术栈
- 有自己的组件库吗?你有写过什么组件吗?
- 小程序和h5怎么做页面自适应的?
- rem和em的原理,怎么实现自适应的?根据什么来自适应的,宽度吗?em和rem有什么区别?
- ipad屏幕适应做的多吗?
- h5、小程序开发的区别和感受
- 怎么接触前端的?为什么要学习前端?
- 你们的部署流程是什么?
基础
- 说一下vue路由的两种模式?hash和history有什么区别?hashchange方法了解吗?路由渲染和实现是怎么做的?
- 说一下你对vue双向绑定的了解
- 那么proxy的意义是什么呢?(回答原来不能检测对象、数组的更新)
- 还遇到过什么vue2不能更新的情况呢?
- vue的数组方法可以实现吗?为什么这些push的数组方法可以而直接令arr[x] = xx不可以呢?
- 虚拟dom的是什么,意义是什么?
- 虚拟dom的批量更新了解吗?
- 说一下收集依赖的过程和原理
- 说一下eventLoop
code
实现一个{{}}语法
比如输入是{{data}}个人和data数据,输出编译后的答案
异步
说一下async和await(然后出了一道promise、async执行的题目)
实现发布订阅模式,具有以下公开方法。
class EventEmit { constructor(elem, props) { // your code } // 注册事件的回调函数 on(event, callback) { // your code } // 注册事件的回调函数,只执行一次 once(event, callback) { // your code } // 触发注册的事件回调函数执行 emit(event, ...args) { // your code } // 删除一个回调函数 remove(event, callback) { // your code } }
写一个sleep函数
二面
自我介绍
- 自我介绍
- 自我感觉上一面如何?给自己打多少分?
基础
css
- 说一下BFC是什么
- BFC怎么用来解决自适应问题的
项目
- 说一下之前实习项目部署的流程
code
BFC左右div定宽,中间自适应;
判断两个单词是否异位词(cat act)
实现add函数
add(2,3,4) = 9
add()()()(2)(3,4) = 9
实现一个promise.race
lc 862 和至少为K的最短子数组
三面
css
- 垂直居中的方式
- 样式重叠怎么解决
- 提到了bfc,然后问bfc触发的方式有哪些
code
跨域了解吗
回答中提到了JSONP,然后让手写了一个JSONP
写一个深拷贝
基础
js
- typepf null会返回什么
框架&前沿技术
- react会吗
- 说一下vue的virtual dom是什么
- vue的双向绑定原理是什么
- 问proxy相比有什么优势呢?
- vue是怎么实现数组监听的?为什么push这些数组操作可以实现呢?
- vue组件如何通信?
- vue、react、angular的区别和比较你有什么了解吗?
- 了解redux吗?
- dva了解吗
- pwa是什么
- flutter、react-Natvie这些了解吗
- vue-router的原理
回答了hash和history。
然后面试官问这两个区别是什么,原理是什么,怎么实现的,hashchange了解吗。 - 了解最新的技术是什么
- 看你项目中写过小程序,那么你了解小程序作为一个跨端工具,为什么我们还需要RN、flutter这些跨端编译?
- Taro是怎么编译的,它的编译原理和过程是什么?
提到了DSL框架 - 那你了解DSL框架吗?
- 编译原理学过吗?比如AST?
- 微前端了解吗
计算机网络
- OSI五层(七层)协议
- tcp和udp的区别
项目
- 说一下你的项目里你做了什么
- 你重构的时候遇到了什么问题和阻力,比如测试
- 那你是怎么做的?
- 看你简历说你参与了公共组件库的开发,那你做了什么呢?
然后围绕组件开发和优化聊了很久 - 详细聊了一下业务
- 开发过程中有遇到特别不能解决的问题吗?就是特别难的问题吗?
主观题
- 怎么学习前端
leetcode code
判断二叉树从父节点到字节点是否有一条和为sum的路径
结果
八月中面试,一周后意向书。
全部评论
(4) 回帖