先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

这里附上我的2020年终总结:2020年终总结

因为我错过了2020年的秋招(ps: 那时候连数据结构与算法都还没学完),11月的时候找了家小公司实习着,也算学到了很多东西。但在实习的过程中,我一直在想着如何备战2021年3月份的春招,进一家心仪的公司。大概1月初的时候,我在各个渠道就收到了字节跳动年前扩招的喜讯,我心想,春招压力这么大(因为春招的求职者大多都是备战了很久的大佬或者是秋招实习结束回来更有经验的同学),字节竟然年前开始扩招了,那我不如抓住这个机会尝试一下,降低一些竞争压力

于是我就用了一周的时间边准备面试,边投简历

准备面试题的方式:

  1. 先把自己以往博客总结过的知识重拾起来看一下,要保证自己写过的东西是会的(因为时间久了难免会忘记一些嘛)

  2. 按照专题进行看常考面试题:浏览器、数据结构与算法、HTML、CSS、JS、Vue/React的常考题…剩下的就要看你自己的技术广度了,简历上有的,就多准备点,没有的也可以稍微看一看

  3. 再者就是多刷算法题啦,毕竟校招也不看你有多牛逼的项目经历,能考核的也就只是一些基础知识、简单的项目经历、算法掌握程度

  4. 以上都做好了以后,就开始多看看别人的面经了,主要的作用就是查漏补缺,这个真的非常有帮助。注:尽量找一些跟自己求职岗位和公司相匹配的面经,当然不是也没有关系

投简历的过程:

  1. 首先肯定是找一个简洁不浮夸却有很精美的简历模板,然后将自己的信息填上去,主要的就是:姓名、电话、照片、擅长的技术栈、教育经历、实习经历、项目经历、证书、社交网站。这里要强调的是:不太熟悉的东西别往上写,没用的东西别往上写。

  2. 然后就是投简历的渠道问题了,刚开始也是因为我写了一篇年终总结,然后有好多人来私信我,想帮我内推,当然我接受了一部分,也推掉了一部分。这里我要给个建议,最好找别人内推一下,因为这样更快让你的简历被看到,避免长时间没有音讯。不过要提的是,找的内推人一定要靠谱!一定要靠谱!要找那种能给你一些简历修改建议的,会帮你跟进后续流程的,部门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 北京)

  1. 自我介绍

  2. TCP的握手、挥手。为什么是三次握手而不是两次?为什么是四次挥手而不是三次

  3. TCP跟UDP的区别

  4. http的请求方法有哪些?get、post的区别,别的方法是干什么的

  5. Content-Type 有哪些

  6. 水平垂直居中的实现方法

  7. flex布局的一些问题

  8. BFC

  9. 如何实现宽高比固定4 : 3(仅用css),我回答说height设为0,用padding-bottom代替

  10. 为什么padding-bottom是基于父元素的宽度而不是父元素的高度的?

  11. Vue给你带来的好处是什么

  12. 什么是组件,干什么的

  13. 若封装一个组件,你会考虑什么?后面还讲了一个具体的组件封装例子,问我的思路

  14. 双向绑定、数据响应式的实现

  15. 一道函数柯里化

  16. 防抖、节流

  17. 给你1亿个数字,找出最大的前1K个,如何优化效率比较高

  18. 图的方法有哪些?(广度、深度)

  19. 一个迷宫,从任意一个起点,求到终点的最短距离

  20. 反问环节

二面(1h 北京)

  1. 自我介绍

  2. webpack的打包流程

  3. Webpack 的一些生命周期

  4. 平时看过什么书

  5. http与https的区别,其实主要就是问https为何安全

  6. 浏览器缓存

  7. apply、call、bind的区别,做了一道关于这个的题目

  8. 做了一道题,回答了一下输出的内容

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(); //

  1. 给一个二叉树和一个值,问是否有一条路径上的值相加等于该值的,有就返回true,没有就返回false

  2. 反问环节

三面(55min 北京)

  1. 为何选择前端,以及之后的职业规划

  2. 在学校如何学习前端的

  3. 按时间线来讲一下做的所有项目(每讲到一个项目时,都会对这个项目问我几个小问题)注:这个环节经过了很久很久很久很久

  4. 手写Ajax

  5. 手写深拷贝

  6. 写了个合并单链表

  7. 反问环节

hr面(1h 北京)

学习笔记

主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue等等

HTML/CSS

**HTML:**HTML基本结构,标签属性,事件属性,文本标签,多媒体标签,列表 / 表格 / 表单标签,其他语义化标签,网页结构,模块划分

**CSS:**CSS代码语法,CSS 放置位置,CSS的继承,选择器的种类/优先级,背景样式,字体样式,文本属性,基本样式,样式重置,盒模型样式,浮动float,定位position,浏览器默认样式

HTML5 /CSS3

**HTML5:**HTML5 的优势,HTML5 废弃元素,HTML5 新增元素,HTML5 表单相关元素和属性

**CSS3:**CSS3 新增选择器,CSS3 新增属性,新增变形动画属性,3D变形属性,CSS3 的过渡属性,CSS3 的动画属性,CSS3 新增多列属性,CSS3新增单位,弹性盒模型

JavaScript

**JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
字符串

[外链图片转存中…(img-ORKVyxx5-1713078252040)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-nkQy4mJ2-1713078252041)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐