故事开篇:
看到一则帖子,讲一个学历只是普通的大专毕业的程序员,做前端5年左右的时间了,中间干过3家公司,都是属于中型互联网企业和创业型的公司,规模不算大。很苦恼进不了大厂,一直在中小公司里打滚天天切图。
有一段时间他几乎天天在面试,从普通的一些小公司,到上市公司,到一线大厂(阿里,腾讯,字节)。然而得到最多的反馈其实就是2种,学历不够或者陪跑。
应该会有不少其他想冲击大厂的同学会得到另外两种反馈,技术深度不够,或者简历上缺乏拿得出手的项目。导致最后没有得到面试机会或者面试通过不了。
在这种前提下,你就很容易形成一种死循环,一直在中小公司徘徊,大部分的中小公司都是以业务优先,对于技术的建设相对来说比较缺乏,所以新的技术得不到实践机会,每天忙于各种业务需求,身边的氛围不好等,最终影响你能力的提升。
字节跳动(校招)
一面:
- TCP、UDP是什么,区别,应用
- 什么是字节流,什么是数据报
- TCP为啥可靠
- 超时重传、累计确认的过程
- HTTP跟TCP的联系
- http通信过程
- http头部字段,平时在项目中有应用过吗,具体说一说
- Cookie、localStorage、sessionStorage用过吗?说一说他们的联系区别与应用
- 每次请求都会带cookie吗?什么时候会带
- cookie维持登录态是怎么做到的
- 你用cookie干过什么
- cookie保存在哪里
- 用户刷新界面后,服务端如何判断这个用户还在登录状态
- XSS与CSRF了解多少,原理,如何预防
- 算法:输入两个数字x,y;输出一个只包含字母a和字母b的随机字符串
要求:字符串中必须有x个a,y个b ;输出的字符串中不能出现aaa和bbb
二面:
- 由一个class引申出的众多问题
- 面试官给出了一个class定义的类,提问:找出其中错误的地方,为什么错了,改正
- 说一下new出的对象有哪些实例属性和方法以及原型属性和方法
- 说说console.log(window.B)输出什么(B是题中定义的class)
- 如果class中返回了一个1,会对new出的对象产生影响吗,为什么,什么时候会产生影响
- 如何在实例化一个对象时传参,考虑已知参数数量和未知两种情况(考察es6的扩展运算符···)
- for...of了解吗,哪些数据结构能用,如果我想用它遍历对象属性,怎么实现(
- LCA:寻找多叉树的最近的公共祖先节点
- 导出一个模块:要求该模块用localStorage实现cookie的过期功能
- 用for实现reduce
- 做过哪些项目,最大的收获是什么
- 接触前端多久了
- 介绍一下vue
- 说一下双向绑定原理
- v-if和v-show的区别
- 虚拟DOM,vue-router
- echarts用过哪些,他的实现有没有了解过
-
DOM和BOM介绍一下,他们的联系是什么
- 有没有用过fetch,get、post和put的区别
- 跨域的方法(越多越好)
- chrome调试工具都用过哪些功能
- CSS实现两栏布局,左边固定宽度,右边自适应
- 算法字符串解码
最后
我可以将最近整理的前端面试题分享出来,其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器、数据结构与算法等等,还在持续整理更新中,希望大家都能找到心仪的工作。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
篇幅有限,仅展示部分截图: