前端实习面经(回馈牛客网)
春招结束了,最终收到了心仪的offer,由于楼主比较水所以面试的问题也比较基础,发出来给各位同学做个基础篇参考
美团(上海现场面)
一面
-
自我介绍
-
说一下浏览器从输入URL到渲染完页面的整个过程
-
JS如何计算浏览器的渲染时间?
-
浏览器缓存讲讲
-
var的变量提升的底层原理是什么?
-
event loop讲讲(做了两道题)
-
闭包原理是什么?(做了一道题)
-
JS的回收机制说一下(计数清除(IE9以前,可能造成内存泄漏),标记清除(V8))
-
数组常用的方法有哪些?
-
WebSocket的底层原理讲讲
-
你的聊天室项目,如果数据传输出错怎么办?(后面想了想这里面试官可能想问的是checksum和错误重传机制?当时没想到,说了点UDP的不足和TCP的错误检测)
-
场景题:
- Q: 现在有一大段文字,如何在页面中设置一个窗口滚动播出这段文字?
- A: 用轮播图思想balabala...
- Q: 那你怎么解决卡顿问题?
- Q: 之前有写过轮播图demo吗?
-
垂直水平居中的方式(说知道宽高和不知道宽高的两种情况)
- 如果宽高不同呢?
- 如果一个元素不设置width,那他的margin有用吗?
- 分析一下你说的几个方法(flex grid table-cell margin transform)的兼容性,如果要兼容IE你会选哪个?
-
实现一个三栏布局,中间自适应你知道几种方法?(float absolute table flex 圣杯)
-
算法题:给一个无序数字数组,里面是随机的数,并给出一个目标值,求这个数组里的两个数,这两个数的和等于目标值。要求求出这两个数并给出下标,你能想到的最优的办法是什么?(快排 + 双指针)
-
有什么想问我的吗? (略)
二面
-
自我介绍
-
算法题两个:
- 第一题跟一面的相同,我说之前做过了并且说了思想并纠正了一面的不足
- 第二题是给一个无序数组,让我分割成m组,这m组里和最大的一组要是所有可能的分割情况里最小的。(二分答案法)
-
对框架的了解
-
Webpack的原理
-
原型链
- __proto__和prototype分别是什么?
- 原型链原理
- 在原型链上Object再往上是什么?
- new和Object.create的区别
- 哪种情况下__proto__和prototype的指向是同一个?
-
typeof array null undefined NaN分别是什么?
-
把undefined和null转成Number分别是什么?
-
如何判断是否为数组?
- A: instanceOf和constructor可以,但是有原型链断裂的风险,Object.prototype.toString.call()最稳定
- Q: 原型链断裂了以后结果是什么?
- A: Obejct
-
如果让你实现一个Promise你怎么实现?
-
有什么想问我的? (略)
-
师兄回来说leader一会想加面一场
HR面
(略)
加面
-
先看了我的前几次面试评价和写的算法题
-
怎么学前端的? 看了那些书?
-
博客写了多少篇?
-
你的技术亮点在哪?
-
写一下实现柯里化
-
你对三大框架的理解是什么?
-
之前实习做了啥?(主要是前端性能优化)
-
讲讲前端性能优化
-
Node.js了解多少?
-
有什么问题想问我?
百度(牛客视频三面,问的比较基础,动手比较多)
一面
-
自我介绍,学习方法
-
你遇到的最有难度的技术问题是什么?
-
redux原理讲讲
-
了解web移动端开发吗?移动端适配方案有哪些?
-
你有Native开发经验,那讲讲Android如何调用页面资源
-
行内元素和块级元素有哪些?Img属于什么元素?
-
margin坍塌
-
BFC原理讲讲
-
写一下清除浮动
-
写一下不知道宽高元素垂直水平居中写一下,不能用flex
-
写一下节点增删改
-
如何获取元素的父节点和兄弟节点,写一下
-
JS如何获得用户来源?(navigator.userAgent)
-
跨域方法说一下
-
JSONP的原理是什么?除了script标签还可以通过什么标签实现?(静态资源标签)
-
原型链说一下
-
写一下原型链继承
-
你还知道什么继承,写一下(构造函数继承,说了两种方法的优缺点)
-
缓存讲一讲
-
你了解的前端性能优化方式有哪些?
-
给你一个乱序数组,你怎么排序(写了快排)
二面:
-
你的项目里有什么亮点
-
你的文件上传方案是什么?
-
写一个方法提取一下search里的参数
-
写一个API实现insertAfter
-
CSS3哪些用的比较多?
-
CSS3动画会吗?怎么用CSS3动画实现一个loading效果?
-
如何处理CSS兼容性问题
-
Webpack有个插件可以解决CSS兼容性问题你知道吗?( postcss-loader)
-
ES6新特性讲讲
-
let和var的区别讲讲
-
箭头函数和ES5的this指向区别讲讲
-
前端安全这块了解多少?
三面:
-
自我介绍
-
写一个API,实现jQuery的$(selector)选择器,要求兼容IE6
-
浏览器是如何通过你的代码去找到指定的元素的?
-
说一下你项目的亮点
-
现在有没有跟着导师做项目?(说了学校科研训练的一些东西)
-
写一下用JS模拟一个双向链表
-
问了问工程化思想
-
模块化思想
-
你为什么选择前端
-
还有什么要跟我说的?
面其他公司被考到的题
- 说说cookie、session、localStorage、sessionStorage的区别
- Node.js线程管理
- 设计模式(需要手写)
- 跨域的方法有哪些? (说了CORS、jsonp、WebSocket、postMessage、Hash)
- 说说bind、apply、call的区别以及bind的实现
- 算法:
- 反转二叉树以及时间复杂度
- 链表找环
- React的Virtual DOM和Diff算法
- React的生命周期
- BootStrap底层原理
- 图片压缩的原理
- 如何处理高并发情况下,用户顺序问题(如抢购网站如何判定谁先点击)