成都滴滴面经(实习)
10.29 一面 50分钟
自我介绍
学习前端历程
块元素水平垂直居中布局(不知道长宽情况下)
- 答:
- flex
- position + relative/position + transform: translate
- 答:
行内元素垂直居中
ES6用过哪些
跨域的方式
- jsonp
- cors
- 没说postmessage
let const var区别
- const 能不能修改
事件委托
- 给了场景让分析
XML和JSON区别
- 答出来一点,面试官咩有补充
简单请求和复杂请求区别
- 自定义首部字段是复杂请求没说到出来,但是扯到项目上用到自定义字段
TCP三次握手 以及 为什么三次握手
- 面试官补充: 安全
http/https区别以及加密方法
写h5和pc区别
- 答: 项目中遇到的软键盘影响布局, 微信默认缩放字体
性能优化有哪些?
- 答: CDN , Webpack插件压缩, 静态缓存, 图片懒加载
- 其实后面追问代码上的性能优化的:
- 我列举大量的dom操作可以用 requestIdleCallback 的低优先级特性向浏览器申请主线程使用权, 自然就扯到React 的 Fiber Reconciler相对于Stack Reconciler 的优化 ,这一段说的挺多的
url输入到接受流程
- beforeUnload(数据清理没说)
- 浏览器进程校验之后把数据传给网络进程,让网络进程请求
- 网络进程
- 查看缓存
- DNS
- 浏览器的缓存
- 主机缓存
- 路由缓存
- 计算机网络中迭代/递归查询
- 负载均衡中的动态IP
- 拿到数据(忘了说 服务端返回30X等对应的操作)
- 通知浏览器进程拿到资源了, 网络进程和渲染进程建立管道
- 渲染进程
- Dom树
- StyleSheet
- 布局树
- 图层树
- 指令绘制
- 栅格化
- 合成
- 谈到了GPU进程可能会优化
- Dom树
- 渲染进程
Promise规范
- 没答出来,但是说了咋实现的,这个只是练了练手撕,没看规范
- 说到了微任务, 把面试官引到了浏览器的event loop
Event loop
- 答出来了,但是面试全是口头说的,要是能用纸画一画可能说的更好
node中的事件循环
- 答的不好,我答的是node中微任务和宏任务执行顺序区别(其实是libuv中的每个阶段事件循环
- 但是面试官说没事,这个业务中不常用(回头补补
- 答的不好,我答的是node中微任务和宏任务执行顺序区别(其实是libuv中的每个阶段事件循环
leetcode
- 看到我在github提交了leetcode
- 但是面试官说时间不够了,不问算法题了(万幸
vue了解吗
- 用过,不了解,只用过vue2.X
- react用的多,说了项目中用的技术栈
工作室怎么培养的,有教授课程吗?
- 没有,只有浅显的指导方案, 和做项目
反问
下次面试时间啥时候?:看安排(感觉可能凉了
- 又问我啥时候能来?两种情况: 1. 可以马上去,但是得回来考试 2. 考完试1月初去
问成都滴滴这边的技术栈: 只有一个老项目vue, 其他都是React
对我评价和之后路线建议:评价一番,然后突然说我过了, 这两天安排二面 (惊喜
10.30 二面 50分钟
自我介绍
做的项目那里来的
介绍工作室
学习前端路程
看过哪些前端书
为什么阅读redux源码以及阅读之后的心得
喜欢的专业课程
TCP/UDP区别
选择排序和快排原理
课多吗?一周能实习多久?
来实习想学到什么?
怎么规范自己代码?(不太懂这个问题啥意思)
这个只说了看学长的代码学习,拉一些github上好的代码学习
不知道咋回答
vue写过吗
什么时候能来实习?
如何解决项目中遇到的问题
leetcode easy
写了一个非最优解
引导我写完了最优,我太难了
感受
- 没问项目,只是简单提了一下
- leetcode刷的少了,刷过的还记不得了难受