2020面经@百度、腾讯、阿里

539 阅读5分钟

百度;

一面:0312(1h),二面:0316(40min),hr:0316

  1. 原型和原型链;
  2. 闭包以及应用场所;
  3. 盒子模型(IE、W3C)、flex的容器和项目的属性;
  4. 水平垂直居中(在不知道子元素宽高的情况下);
  5. CSS3动画(tranition&animation)以及区别;
  6. Vue的生命周期,以及什么时候可以访问data,操作DOM;
  7. Vue的响应原理,组件之间怎么通信;
  8. 浏览器的渲染机制;
  9. 重绘重排的区别,以及如何优化;
  10. js的异步加载;
  11. 伪类,什么时候可以用到伪类(我举例说是清除浮动的时候);
  12. websocket的特点(因为我简历里的一个项目用到了)
  13. Promise的实现原理,以及解决的问题(我有特别提微任务,这点学姐说比较加分)
  14. HTTP和HTTPS的区别(我有特别说HTTPS的实现原理)
  15. 代码题:
  • 调用一个输出1-7的随机函数,输出1-11;
  • 一个数字有多少种相加方式:比如,9=4+5;9=6+3;……

阿里

一面:0312(1h)

  1. 讲一下BFC(我把触发条件、特性、应用全部都说了);
  2. flex布局;
  3. 闭包;
  4. this的指向;
  5. 事件机制(事件捕捉、事件冒泡、事件委托),还有问事件捕捉的应用场景;
  6. HTML语义化(优点、标签);
  7. 垂直居中(又特别问了flex怎么实现);
  8. CSS3动画(tranition&animation)以及区别;
  9. 原型及原型链;
  10. webpack的概念以及工作流程,我有特别说plugin和loader的作用;
  11. bebal如何将ES6/7转换成ES5;
  12. 组件化:问我有没有做过一些组件化;

二面:0318(1.5h)

  1. C语言(我真的疯了,我大一学的全忘了。就是因为我说我觉得我学的还行,哭疯!!!);
  2. 面向对象的三个特性;
  3. 计算机网络分层;
  4. 二叉树的应用(AST);
  5. 继承的实现方法,ES6的方法(extends+super);
  6. 观察者的实现(emit);
  7. 性能优化;
  8. HTTP和HTTPS的区别,以及HTTPS的实现原理;
  9. JS的数据类型
  10. 常用的数据结构(我说了堆:举例垃圾回收机制;栈:切换执行上下文;队列:数据的保存)

笔试: 0322(1.5h)

  1. 手写数据类型的判断;(一定要把可能性考虑全面)
  2. 并行输出Promise;(我的理解是Promise.all)
  3. 实现发布订阅者,具有发布订阅移除的功能;

三面:0323(20min)

  1. 讲一下Vue的响应原理(我有把Proxy也一起提了一下);
  2. 其他全部都是项目相关的,比如如何解决恶意用户攻击;

交叉面:0329(1h)

  1. 对H5语义化的理解,以及他解决了什么问题;我在实际代码中对于语义化的感受;
  2. 有用过哪些性能优化的方式(因为我介绍项目时候,说到我有用代码分割对首屏进行优化);
  3. 自己常用的CSS3效果;
  4. 其他就是项目相关;

hr面: 0402(1.5h)

  1. 自我介绍;
  2. 项目介绍;(这里一定要说自己在项目中担任的角色,如果除了技术还有别的角色就更好啦);
  3. 在项目中起到的作用;
  4. 项目挑战;
  5. 如何协调本专业和兴趣;(因为我的专业偏硬件)
  6. 大学期间对我影响最深的人,他的闪光点;
  7. 在项目中担任组长解决了什么问题,主要负责内容;(这个是因为我提到说自己有担任组长)
  8. 大学期间最有成就感的一件事;
  9. 遇到最挫败的事;(我的思路是遇到挫折其实没关系,但一定要在挫折中成长,总结问题很重要)
  10. 在校成绩;

腾讯

一面: 0317

  1. 重绘重排,如何优化;
  2. 性能优化;
  3. 跨域;
  4. 安全问题以及如何优化(我说了XSS和CSRF);
  5. HTTP和HTTPS的区别(我有特别说HTTPS的实现原理);
  6. 有关注现在前端的新动态么;
  7. 常用的调试方式;

二面: 0320

1小时内完成以下题目:

要求,不能上网,写原生代码,可以使用浏览器工具调试,兼容IE8及以上 & firefox & Chrome

1、页面内有一个正方形元素,实现对其拖拽和放下

2、实现超出整数存储范围的两个大正整数相加 function add(a, b),注:参数a和b以及函数的返回值都是

总结:

截止昨天我所有的面试结果全部结束,其实这是我第一次找实习,最大的感受是一定要有一个清晰的计划,无论是面试前的准备还是通过每一次面试的总结,其实这段时间的面试对我的提升非常的大。很感谢每一位面试官给我提供的学习建议,以及内推人长期的帮助,朋友和家人始终的信任和鼓励,我可以拿到心仪的offer真的是太感谢大家了。

学习总结:

  1. 不可以忽略计算机基础知识:
    计算机图形学、计算机组成原理、算法和数据结构、汇编等。这会决定我前端学习的深度;
  2. 更多的独立完成整套项目:
    从前期的项目选型、项目设计、代码实现、前后端调试、上线、优化;