打开全栈工匠技能包-1小时轻松掌握SSR
两小时精通jq+bs插件开发
生产环境下如歌部署Node.js
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
网易内部VUE自定义插件库NPM集成
谁说前端不用懂安全,XSS跨站脚本的危害
webpack的loader到底是什么样的?两小时带你写一个自己loader
于是我就用了一周的时间边准备面试,边投简历
准备面试题的方式:
-
先把自己以往博客总结过的知识重拾起来看一下,要保证自己写过的东西是会的(因为时间久了难免会忘记一些嘛)
-
按照专题进行看常考面试题:浏览器、数据结构与算法、HTML、CSS、JS、Vue/React的常考题…剩下的就要看你自己的技术广度了,简历上有的,就多准备点,没有的也可以稍微看一看
-
再者就是多刷算法题啦,毕竟校招也不看你有多牛逼的项目经历,能考核的也就只是一些基础知识、简单的项目经历、算法掌握程度
-
以上都做好了以后,就开始多看看别人的面经了,主要的作用就是查漏补缺,这个真的非常有帮助。注:尽量找一些跟自己求职岗位和公司相匹配的面经,当然不是也没有关系
投简历的过程:
-
首先肯定是找一个简洁不浮夸却有很精美的简历模板,然后将自己的信息填上去,主要的就是:姓名、电话、照片、擅长的技术栈、教育经历、实习经历、项目经历、证书、社交网站。这里要强调的是:不太熟悉的东西别往上写,没用的东西别往上写。
-
然后就是投简历的渠道问题了,刚开始也是因为我写了一篇年终总结,然后有好多人来私信我,想帮我内推,当然我接受了一部分,也推掉了一部分。这里我要给个建议,最好找别人内推一下,因为这样更快让你的简历被看到,避免长时间没有音讯。不过要提的是,找的内推人一定要靠谱!一定要靠谱!要找那种能给你一些简历修改建议的,会帮你跟进后续流程的,部门hc真的充足的人,而不是找那种广撒网的,因为他们根本没时间管你,可能你投进去,反而卡了流程(真的感同身受)
大概我是1月10号开始投的简历,然后好像3天内就收到了面试邀约(不得不说,太效率了),后来1、2面都是技术面(2面交叉面),3面是leader,也就是简单聊点基础知识和项目难点啥的,4面就直接hr面了,整个流程下来也不拖延总共用了也就1个星期多几天吧(再次感叹,好效率)。不过可惜的是,最后hr在跟我谈的时候,告诉我是北京的,然后可能跟我的意向城市有点冲突,我就说能否给我转杭州去(这里我真的懵逼,投的时候也没特地指明是北京,整个面试流程也没人告诉过我是北京),经过几天的协调,转到杭州的字节了
转到杭州的字节以后,因为我前面技术面都面过好几次了,所以只是加面了个leader面,这次的leader是个好大的大佬,给我的压力还是挺大的,我当时都以为挂了,不过出人意料的是最后告诉我竟然过了,可…尴尬的事情又来了,跟我说部门hc可能不太多了,于是hr就又给我想办法,最终问我是否愿意转到上海的字节,其实我本来意向城市只有一个,那就是杭州的,但后来一想,人别那么死板嘛,就准备尝试一下上海的字节了
(此时已经2月10号了,距离我第一次投递简历已经1个月了)流程转到上海的字节以后,跟上次的转流程一样,也是加面了一次,面我的leader人特别友善,整个气氛特别好,后来流程也是很顺利,过了hr面,最终拿到了offer(现在已经入职实习了)
其实说实话,在得知杭州的字节没有前端的hc时,我多多少少有点崩溃,感觉过程怎么这么艰难,不过还是劝自己好事多磨,好在结果没让我失望
接下来就放上我这么多面试所有的过程吧,希望能对大家有所帮助,答案就不放了,有需要答案的小伙伴可以加我细聊
一面(50min 北京)
-
自我介绍
-
TCP的握手、挥手。为什么是三次握手而不是两次?为什么是四次挥手而不是三次
-
TCP跟UDP的区别
-
http的请求方法有哪些?get、post的区别,别的方法是干什么的
-
Content-Type 有哪些
-
水平垂直居中的实现方法
-
flex布局的一些问题
-
BFC
-
如何实现宽高比固定4 : 3(仅用css),我回答说height设为0,用padding-bottom代替
-
为什么padding-bottom是基于父元素的宽度而不是父元素的高度的?
-
Vue给你带来的好处是什么
-
什么是组件,干什么的
-
若封装一个组件,你会考虑什么?后面还讲了一个具体的组件封装例子,问我的思路
-
双向绑定、数据响应式的实现
-
一道函数柯里化
-
防抖、节流
-
给你1亿个数字,找出最大的前1K个,如何优化效率比较高
-
图的方法有哪些?(广度、深度)
-
一个迷宫,从任意一个起点,求到终点的最短距离
-
反问环节
二面(1h 北京)
-
自我介绍
-
webpack的打包流程
-
Webpack 的一些生命周期
-
平时看过什么书
-
http与https的区别,其实主要就是问https为何安全
-
浏览器缓存
-
apply、call、bind的区别,做了一道关于这个的题目
-
做了一道题,回答了一下输出的内容
function Foo() {
getName = function(){ alert(1); };
return this;
}
Foo.getName = function() { alert(2); };
Foo.prototype.getName = function(){ alert(3); };
var getName = function() { alert(4); };
function getName(){ alert(5); };
Foo.getName(); //
getName(); //
Foo().getName(); //
getName(); //
new (Foo.getName)(); //
(new Foo()).getName(); //
然后改动了一个地方,继续问我输出结果是什么
function Foo() {
// 这里加了一个this
this.getName = function(){ alert(1); };
return this;
}
Foo.getName = function() { alert(2); };
Foo.prototype.getName = function(){ alert(3); };
var getName = function() { alert(4); };
function getName(){ alert(5); };
Foo.getName(); //
getName(); //
Foo().getName(); //
getName(); //
new (Foo.getName)(); //
(new Foo()).getName(); //
-
给一个二叉树和一个值,问是否有一条路径上的值相加等于该值的,有就返回
true
,没有就返回false
-
反问环节
三面(55min 北京)
-
为何选择前端,以及之后的职业规划
-
在学校如何学习前端的
-
按时间线来讲一下做的所有项目(每讲到一个项目时,都会对这个项目问我几个小问题)注:这个环节经过了很久很久很久很久
-
手写Ajax
-
手写深拷贝
-
写了个合并单链表
-
反问环节
hr面(1h 北京)
-
自我介绍
-
问了我一些校园经历相关的简单问题
-
介绍一下你自己做的最有成就感的项目,讲讲初衷、心得(惊了!hr竟然问我项目)
-
兴趣爱好
文末
js前端的重头戏,值得花大部分时间学习。
推荐通过书籍学习,《 JavaScript 高级程序设计(第 4 版)》你值得拥有。整本书内容质量都很高,尤其是前十章语言基础部分,建议多读几遍。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
另外,大推一个网上教程 现代 JavaScript 教程 ,文章深入浅出,很容易理解,上面的内容几乎都是重点,而且充分发挥了网上教程的时效性和资料链接。
学习资料在精不在多,二者结合,定能构建你的 JavaScript 知识体系。
面试本质也是考试,面试题就起到很好的考纲作用。想要取得优秀的面试成绩,刷面试题是必须的,除非你样样精通。
这是288页的前端面试题