菜鸡前端春招实习上岸之路-面经总结
从三月开始投第一份简历,到6月终于上岸,面试了大大小小各家公司,以一篇面经来总结一下自己的春招实习之路,也回馈一下广大牛友们!
字节跳动校招一面(挂)
重点考察的还是计算机基础和编码能力。
- 自我介绍
- 进程线程是什么,进程间的通信有哪些方法
- 计算机网络了解吗?OSI七层模型?选择一个比较熟悉的层,介绍一下有哪些协议
- DNS的运行过程,DNS性能优化有哪些方法
- https协议加密具体过程
- 垃圾回收机制
- 写代码:给一个淘宝的页面,写一下大概如何布局
- 写代码,DOM操作将所有页面元素存为一个{key:count}的结构,即统计在页面中每种元素的数量,将元素根据count进行排序。
字节跳动日常实习一面(挂)
在校招一面凉了以后觉得自己答得还可以,于是又投了一次日常实习,这次被虐的更惨。
- https和http区别,对称加密和非对称加密区别
- http1.0和http1.1和http2.0
- 数据库第一范式,第二范式,第三范式
- CSS盒模型(box-sizing属性)
- 写代码:***数组展为一维数组(如:[[1,2],3,[4,5,6],[7,8]]->[1,2,3,4,5,6,7,8])
- 写代码:自己实现一个instanceof
- 对于原型链的理解,new的过程中发生了什么,写代码:自己实现一个new
- Vue双向绑定的原理
两次字节跳动面完之后感觉自己离大厂的差距确实还是挺大的...
蘑菇街一面(挂)
- Vue生命周期,每个生命周期可以做什么
- Vue组件间的通信
- em和rem的区别
- CSS雪碧图是什么
- 重绘和重排,哪些属性会触发重绘,哪些属性会触发重排
- ES6中let,const,var的区别
- map,forEach的区别
- 跨域有哪些方法
- 项目中有哪些印象深刻的点
这次面试是我感觉挂的最莫名奇妙的一次,只问了13分钟,明明问的基本都答出来了,但是一周后收到了拒信...
作业帮一面
-
写代码:***数组展开成一维数组,分析算法的时间复杂度,用es6的什么方法可以实现(flat)
-
写代码:数组去重有哪些方法
-
写代码:用闭包实现add()函数,第n次调用的时候输出n
-
this的指向问题:
var a=2; var obj={ a:1, b:this.a, fun:function(){ console.log(this.b); } }
输出结果为2,分析原因
-
写代码:实现call函数
-
TCP三次握手,为什么是三次
-
http请求包括什么,http应答包括什么
-
了解哪些状态码
-
输入url到页面出现发生了什么
-
浏览器渲染机制
这次面试写了很多代码,有不少是在面试官的提示下写出来的,但是没想到通过了一面,面试官还说我基础不错
作业帮二面(挂)
只记录了一些自己当时没答得不好的
- 什么是同源策略(如何判断是否同源),CORS策略
- CSS实现三角形,箭头
- CSS垂直居中的方法
- CSRF和XSS是什么,如何预防
二面虽然挂了,但是第一次进入二面还是让我感觉到了自己的进步
美团一面
问了很多知识点,都很浅,没有深入问下去,只记录了一些自己答得不好的
- localStorage和sessionStorage区别,localStorage最大存储量
- CORS机制
- Chrome调试断点如何设置
美团二面
主要是问项目,简历从头到尾怼了一遍,项目介绍,项目难点,还聊了聊天,问了平时爱好等,因为自己的项目很low,当时感觉非常不好。
但是没想到一周之后收到三面通知,让我去北京现场面试
美团三面(现场)
- TCP三次握手,为什么不是四次,为什么不是两次
- 浏览器渲染机制,js阻塞加载
- js动态加载,eval()方法
- 写代码:请求一个require.js文件,并统计文件中'require'的数量,分析时间复杂度,如何优化
- 为什么想做前端,平时如何学习前端,知不知道社区里有哪些大神,讲讲最近看的一些前端相关的知识
- 自己对前端未来发展方向是什么
- 认为自己的优点和缺点是什么
- 对美团的认识,为什么想加入美团
整个三面被大佬问懵了,代码写的不好,最后的开放性问题也答得一塌糊涂,最后问了自己有哪些需要提高的地方,大佬说各方面都需要提高...首先应该对前端这个行业有更深刻的了解,然后才是技术上的提高...面完就知道自己凉了
京东一面
- 如何实现一个轮播图效果
- CSS3新特性了解哪些
- 怎么学习Vue的,怎么学习一个新的框架
- 平时怎么了解新技术
- 会PS吗? 我:????
- 你觉得如果在一个公司里做前端,需要和哪些人合作
整个一面技术问题问的很少,大多时候在聊天,然后面完不到10分钟官网状态显示已结束,京东这次面试真的很莫名其妙...
独到科技(一家北京小公司)
两轮技术面,就写在一起了
- js数组的方法
- js对象的方法
- CSS的flex布局
- js闭包
- Json是什么,为什么要有Json
- ajax原生操作的步骤
- 数组排序的方法有哪些,简述归并排序
- 如何实现一个数组的深拷贝
- 从后端返回一个很大的数组,如何实现分页显示(通过数组下标进行对应)
- 如何实现一个下划线(和text-decoration里的underline不一样),答案:用box-shadow
- 单页应用有什么好处
- 如何判断一个链表是否有环
- 一个二叉树中找到两个节点的最小公共父节点
- 聊天,谈未来的规划
收到的第一个offer,很感谢这家公司给我的机会和信心
阿里一面
- 了解es6的那些特性
- js闭包是什么,什么是内存泄漏,如何解决内存泄漏问题
- js垃圾回收机制
- js基本数据类型(包括es6新增的Symbol)
- 原生ajax原理,ajax和fetch的区别,fetch支持http的哪些方法
- option方法可以发送那些内容
- CORS原理
- 网络安全了解哪些?如何预防sql注入,XSS,CSRF
- w3c标准盒子模型和IE模型有什么区别
- CSS的display有哪些取值
- iso七层模型,每一层模型的经典协议
- http1.0和http1.1和http2.0的区别
- es6新增的数组方法
- 数组的reduce方法
- js中找到一个数组最大值的方法,分析复杂度
- MVC和MVVM的区别,MVVM的优点
- flex布局用在哪些场景下
- 如何适配不同的屏幕
当时投了阿里一个多月了突然被捞了起来,很兴奋,答得也还算不错,面试官说后续会有更深入的二面,然而一周后官网状态显示已结束...
酷家乐一面
计算机基础相关:
- 从键盘上键入一个字符到显示到电脑屏幕上发生了什么
- 计算机存储中的堆和栈的区别
- 数据结构数组和链表的区别
- HTTP状态码有哪些
-
cookie,localStorage,sessionStorage的区别
js相关: - es6的let,const和var区别,const绑定的对象能不能修改属性值
- Vue数组双向绑定的原理,数组中没有get和set方法,应该如何实现数据劫持
-
event-loop原理,宏任务,微任务有哪些
CSS相关: - 如何实现水平垂直居中(元素定长和不定长)
- position有哪些属性,有什么区别,除了定位上的不同还有什么区别
酷家乐二面(挂)
- Vue组件通信的方式
- Vue组件中的data为什么是函数
- Vue双向数据绑定的原理
- 项目中遇到的难点
- 为什么学习前端
- 面向对象设计:一个无人自助商场,顾客自己购物,有不同的区域,每个区域有若干货架,每个货架上放着商品,入口有小推车,可存放商品,出口有扫描仪和收银台,用面向对象的思路实现这样一个商场运作(就是设计有哪些类,类的属性和方法,以及类之间的关系)
- 逻辑题1:四瓶药罐,里面放着药片,药片质量已知,有一瓶被污染了,导致每个药片比正常重了0.1g,用一个电子秤称一次,如何知道哪个药罐被污染了
- 逻辑题2:一个圆形棋盘,两个人下棋,圆柱形棋子,棋盘没有空间下棋的时候算输,先手赢还是后手赢,还是不一定?
两个逻辑题都没答出来,于是挂了
深信服一二面
问的都是一些常见知识点,只记录了一些答得不好的
- webpack怎么用,实现机制
- Vuex相关
- 一个网站图片很多,加载很慢,应该如何优化:DOMContentLoad,图片懒加载,CDN
- Vue的watch和computed区别
- CSS选择器优先级
深信服是拿到的第二个offer,待遇很好,因为地点在长沙,离家很远,最后放弃了
酷狗一面(挂)
酷狗也是投了两个月突然被捞了起来
- es5实现继承
- 闭包的应用场景
- es5中的模块化,CommonJS等
- setTimeout和Promise的区别,如何实现Promise
- 一个页面加载不出来可能是那些方面的原因
- HTTP持续连接实现原理
- 了解哪些设计模式
- jQ选择器的实现原理
- Vue中虚拟DOM解决什么问题,原理?
- 快排的原理,为什么比冒泡排序快
猫眼娱乐一面
- 归并排序的原理
- 写代码:写一下归并排序合并两个有序数组的过程
- 写代码:求多个数组的交集(用归并的思想进行优化)
- 写代码:递归实现1000!(尾递归调用优化)
- 栈和链表的联系和区别,写代码:用链表实现栈
猫眼娱乐二面
-
项目相关,遇到了什么难题
-
实现柯里化,foo(1)(2)(3)(4)
-
实现一个function A,使得
a1=new A(); a2=new A(); console.log(a1.value);//1 console.log(a2.value);//2
即每new一次value加1
-
http协议是什么,请求和响应的构成,如何区分一个请求的头部和实体(中间有一个空行)
-
http有哪些方法,为什么要有这些方法(语义化)
-
状态码3开头的有哪些,浏览器收到301和302怎么做,304用在哪些场景
-
cookie相关,cookie用在什么场景,cookie有哪些性质
猫眼娱乐三面
- 觉得前两面的面试官对你的评价是否有偏差
- 为什么想做前端
- 了解猫眼吗,为什么想加入猫眼
- 写代码:实现乒乓球计分,给一个数组,[1,-1,1,1….],1代表A赢,-1代表B赢,先赢11分且得分高过对方两分以上获胜,计算最后的比分:如大比分1:0,小比分10:5
三面结束当晚收到了offer call,最终决定去猫眼了,历时三个月终于上岸了!
整个找实习的过程下来,通过面试官的评价和自己的总结,我觉得在秋招之前自己还有以下需要提升的地方:
- 项目经历。面试中听到最多的评价就是基础还可以但项目经验比较少
- 框架底层原理。实习期间应该找时间读一读框架的源码
- 数据结构和算法。面经中没提到,但其实自己还挂了不少笔试,多数是编程大题做的不好,leetcode和剑指offer还是要继续刷。
秋招继续努力!
#酷家乐##猫眼##作业帮##美团##前端工程师##实习##面经#