滴滴社招前端岗面试经历分享

一面

1、询问项目经历,项目里怎么做的性能优化?

2、webpack 原理

1)初始化参数:从配置文件和 Shell 语句中读取与合并参数,得出最终的参数;

2)开始编译:用上一步得到的参数初始化 Compiler 对象,加载所有配置的插件,执行对象的 run 方法开始执行编译;

3)确定入口:根据配置中的 entry 找出所有的入口文件;

4)编译模块:从入口文件出发,调用所有配置的 Loader 对模块进行翻译,再找出该模块依赖的模块,再递归本步骤直到所有入口依赖的文件都经过了本步骤的处理;

5)完成模块编译:在经过第4步使用 Loader 翻译完所有模块后,得到了每个模块被翻译后的最终内容以及它们之间的依赖关系;

6)输出资源:根据入口和模块之间的依赖关系,组装成一个个包含多个模块的 Chunk,再把每个 Chunk 转换成一个单独的文件加入到输出列表,这步是可以修改输出内容的最后机会;

7)输出完成:在确定好输出内容后,根据配置确定输出的路径和文件名,把文件内容写入到文件系统。

8)在以上过程中,Webpack 会在特定的时间点广播出特定的事件,插件在监听到感兴趣的事件后会执行特定的逻辑,并且插件可以调用 Webpack 提供的 API 改变 Webpack 的运行结果。


3、写过webpack loader 或者插件吗?

4、babel 原理

1babel的转译过程分为三个阶段:parsingtransforminggenerating,以ES6代码转译为ES5代码为例,babel转译的具体过程如下:

ES6代码输入

babylon 进行解析得到 AST

plugin babel-traverse AST 树进行遍历转译,得到新的AST

•用 babel-generator 通过 AST 树生成 ES5 代码


5、写过 babel 插件吗?是用来干什么?怎么写的?

6、知道怎么转化成 AST 的吗?

7、虚拟 DOM 的理解

答:虚拟 DOM本质上是 JavaScript 对象,这个对象就是更加轻量级的对 DOM 的描述。


二面

1、了解多端的原理吗?

2、说说http tcp 的关系

3、tcp 可以建立多个连接吗?

4、为什么要有三次握手,四次挥手

5、研究过 React 的运行时吗?

6、redux 的原理

7、redux 做状态管理和发布订阅模式有什么区别?

答:redux 其实也是一个发布订阅,但是 redux 可以做到数据的可预测和可回溯。


8、react-redux 的原理,它是怎么跟 react 关联起来的?

答:react-redux 的核心组件只有两个,Provider connectProvider 存放 Redux store 的数据到 context 里,通过 connect context 拿数据,通过 props 传递给 connect 所包裹的组件。


9、未来的职业规划。


三面

1、介绍项目

2、说一下你的项目有哪些复杂的点,以及怎么解决的

3、你们的业务组件库有多少个,是什么样的组件

4、权限组件是怎么设计的

5、会node 吗?

6、介绍一下你对中间件的理解

7、怎么保证后端服务稳定性,怎么做容灾

8、怎么让数据库查询更快

9、数据库是用的什么?

10、为什么用 mysql


四面

1、介绍一下项目的难点以及怎么解决的

2、自己有什么技术上的优势

3、最近在研究什么技术?

4、职业规划

5、移动端的业务有做过吗?

6、希望滴滴能提供给你什么?

7、当业务繁忙的时候会怎么安排时间?

#面经##社招##滴滴##前端工程师#
全部评论
一面可真难
1 回复
分享
发布于 2020-12-26 20:06
请问一面和二面中间隔了多久?
1 回复
分享
发布于 2021-02-28 10:32
百信银行
校招火热招聘中
官网直投
请问下是什么部门
点赞 回复
分享
发布于 2021-01-04 13:33
三面怎么保证后端服务器稳定性??不是面试前端嘛,略有涉及后端我懂,但这。。。面试官后端的吧
点赞 回复
分享
发布于 2021-01-29 14:40
这一面也太难了吧。。
点赞 回复
分享
发布于 2021-02-24 14:39
一年半经验,感觉一面挺简单的
点赞 回复
分享
发布于 2021-02-25 00:00

相关推荐

10 64 评论
分享
牛客网
牛客企业服务