这篇文章不适合拿到 BAT 的大佬及自制力特别差的人css
本文只是提供复习的思路,以及我本身的一些面经,并无具体的题目html
听说先把 offer 亮出来才能吸引大家看下去。目前一共有五个。分别是顺丰,拼多多,远景智能,老虎证券和贝壳。其实拿到拼多多之后不少笔试面试就没有继续参加了,好比苏宁,虎牙的面试都没有去。还有一些直接笔试就拒了。由于过了也不会去,因此也就不败人品了。前端
再说一下个人状况吧,本科专业是矿物加工,当时连 c 语言都没学过,只学过一门大家可能听都没听过的 VB。而后考研考到了计算机的专业,两年,因此已通过去一年多了。而后刚开始的话也不是作前端,其实真正接触前端开发是去年 11 月左右。可是真的开始系统的学习应该是今年 4 月左右。由于其实实验室开发的话用的东西不难,不少东西用不到,因此当时直接开发问题也不是特别大,可是如今看起来真是太菜了。好比今年四月左右尝试了一下腾讯的实习,由于实验室和本身技术的缘由,因此只尝试了这一家。不过大家就能够经过这一家判断出我当时的水平了。当时有这么一题,写一个闭包,每次调用的时候自加 1。怎么样是否是很简单,那我当时是怎么写的呢vue
var a = 0;
function add1(){
return a++;
}
复制代码
没错,我就是这么写的,今年 4 月的时候。因此也应该大概知道我当时的水平吧。node
之因此说这些呢,是给你们打个气,菜不要紧,可是不能一直菜。因此也是告诉你们,若是真想学好,而且有兴趣的话是能够学好的。先说一下我准备的过程吧,给你们作个参考。jquery
大概就是实习结束以后就开始准备了。由于那时还有课,实验室还有项目,因此复习的比较慢,花了大概两个月左右把红宝书看了第一遍,基本上每一章都看了。这个过程虽然记住的东西很少,并且不少东西可能理解不了,可是会让你多不少东西有个基本的概念。为第二遍作准备。没错,这本书看一遍远远不够,你还要看第二遍,并且要整理,最重要的是复习。我相信看一遍的人不少,看第二遍的人也有。可是看的时候整理而且常常复习的人可能并无那么多。固然第二遍整理的时候你须要有复习的思路(后面我会提供给你们,能够作个参考)。第二遍的时候不能有不理解的地方了,原型,继承,原型链,执行上下文,垃圾回收,做用域链书上讲的不清楚,看不懂的去网上找,仍是不懂本身用例子测试。第二遍必定要弄懂,除非你想来第三遍。第二遍的话总结只总结重点的几章我就整理了九万多字,而且那段时间天天早上都会复习一下,8 点复习,9 点左右结束,其实有点太多了。致使本身都快背下来了。后来的话感受天天把前一天整理的复习一下,每一个星期把全部的复习一下可能更合适一些,也有更多时间看别的。webpack
那段时间除了看这个的话还在看 vue 和 webpack,ES6 标准入门,图解 http(稍微翻了一下 http 权威指南)。后来由于感受本身一个跨专业的基础比较差,因此仍是把精力放在基础上比较好,就暂时把 vue 和 webpack 放下了。开始看你不知道的 JavaScript。ES6 标准入门的话也不用都看,也是要有重点的看,固然这些都是针对找工做来讲的。仍是同样的,总结和复习缺一不可。css3
后面的话开始看你不知道的 JavaScript,解决了我对于 this 指向的疑惑,刚开始的话看上中两卷就好,后面有时间能够再看下。web
而后提早批就开始了。由于本身自己算跨专业,加上没有实习,学习的时间不长,因此从开始的时候就积极投简历了。无论是什么岗位,我都建议提早批开始投递简历,固然,是在我前面说的那些准备工做都作的差很少的状况下。若是你什么都没作,我以为可能安心复习是更好的选择。面试
开始面试之后,确定有好多东西不会,能够经过写面经,总结的方式来弥补本身的缺陷,不能面完了就结束了。这样一样的问题你永远不会。好比刚开始我对 BFC,防抖节流,性能优化等根本不了解,后面的话也经过面试,面试完查资料了解了。这里想说的就是不懂就要问,要查,而不是过。
后面的话本身了解的东西就比较多了,高性能 js,js 忍者秘籍,前几天的话也是刚看完 js 函数式编程,最近又把 http 抓包实战看完了,了解了抓包相关的东西。
前面的话是本身复习的一些经历。里面对框架说的比较少,这里说一下缘由。首先我是跨专业的,基础差,基础都没打好怎么看框架。好比你让一个会用 jquery 的 ajax 的人封装一个原生的 ajax,可能他们不会,可是我会。因此框架当然重要,可是基础是最重要的。固然框架里面的一些好的思想你仍是要了解的。好比虚拟 dom,diff 算法,vue 双向绑定实现这些东西。你能够没用过框架,可是这里面的原理你须要花时间去了解。
下面是我从开始找工做时整理的一些面经,你们能够参考一下。
有些可能没有,由于现场面的时候是连着面的,因此没有整理的时间,回去的时候都忘的差很少了,并且大多数都是相似的问题,可能少数几个不同,也不值得整理了。因此有些可能没有。
其实开始复习以前也整理过别人的面经,大体都差很少。我这里就不提供具体的问题了,由于有好多人整理过了,因此能够参考他们。可是你在看别人整理的内容以前,最好本身已经了解一部分了。由于别人整理的东西为了简洁可能会把一些帮助理解的东西去掉,因此至关于你看到的只是结论。你看别人整理的东西的时候,最好是用来查缺补漏,而不是用来学习。
重点 js 高级程序设计 3 - 7 章,10 - 13 章,21 章
首先,基础知识必定要扎实。怎么样算扎实呢,举个例子吧,每一个对象都有的 tostring 和 valueOf,谁能说出什么状况下触发哪个
var obj = {}
console.log(obj);
console.log(+obj);
console.log(obj=={});
console.log(obj==={})
console.log(obj=='test')
console.log(obj==='test')
复制代码
不少人只是过了一下,就好比别人整理的东西上面确定不会说的特别详细,他只是给你个结论,因此你亲自试过吗?怎么试呢,其实很简单啊
var obj = {
toString:function(){
console.log('toString')
return Object.prototype.toString.call(this)
},
valueOf:function(){
console.log('valueOf')
return Object.prototype.valueOf.call(this)
}
}
alert(obj);
alert(+obj);
alert(obj=={});
alert(obj==={})
alert(obj=='test')
alert(obj==='test')
复制代码
很简单就能测试出来何时用 valueOf 和 toString 了。
再好比数组哪些方法会改变原数组,哪些不会。其实这些书上都有,可是没有专门总结。由于总结不是书的事,书只负责教你知识,总结是你本身的事。一生不总结,一生都记不清。由于我也是从这种状态走过来的,因此但愿你们学完一点东西之后总结一下,过段时间看一下。
若是你这两个都想的磕磕绊绊可能得看一下基础部分的内容。
重点图解 http,极客时间的趣谈网络协议,博客
基础差很少了,还要看网络的东西,若是作开发的话,先后台都须要好好了解网络的知识。具体有 http,http 2.0,https,dns,cdn,tcp,缓存,跨域,安全,本地存储这些东西。前面那些计算机网络的东西能够经过图解 http 来作个大概的了解。这里想推荐极客时间的一门课程趣谈网络协议。若是有想试听的能够加我微信,经过个人连接购买的返利我也会返还给你,微信和连接放在最后。由于我以前也是特别头疼网络这方面的东西,不过听了之后就感受好多了,甚至还能说下 quic 协议来装个逼。天天早上,中午晚上去学校实验室的路上听一下,反复听,这点东西听一个月就算弱智也能听会了。固然也要本身总结一下,由于有些讲的不是那么清楚,好比 https 的 pre-matser 那里,这就须要你本身去查一下。对于跨域,缓存,安全这些东西网上一找一大堆,我本身也整理过,因此也不是特别难,可能刚开始了解的很少,会以为好难,其实看下来之后会以为没那么难。这里特别要注意的就是 cookie 的一些属性,须要记一下。
css 权威指南 二、三、七、八、10 章,w3c,博客
html 首先要理解语义化,而后就是一些语义化的标签。语义化的好处,新增的一些特性。给你一个页面结构要能使用语义化标签准确还原。
css 这部分的话其实考的比较多的是一些实际的东西,可是首先基础你要知道。好比最基本的盒模型,还有一些 css3 新增的选择器,属性等。而后最常常的就是让你实现三栏两栏布局,因此基本的布局方式你也要了解吧。而后就是垂直居中,移动端适配等考的比较多。这些东西其实都是须要本身整理,而后一段时间复习一下。
重点 ES6 标准入门 二、三、七、十一、1四、1六、1八、1九、2二、23
ES6 重要且经常使用的特性基本都在这里面的,具体常问的有 let const,class,箭头函数,promise,async await,module 模块化。
重点剑指 offer!!!
面试考的算法题 90% 都是剑指 offer 上面的,因此剑指 offer 也必定要好好刷,常常刷,刷完了继续刷。这样面试的时候 90% 以上的算法题就没有问题了。可是若是笔试想表现的好一点的话可能就得刷 leetcode 了。可是我以为仍是得首先把基础概念弄懂了再刷比较好,最近极客时间也新开了一门算法课。想报名的能够经过个人连接,加我微信,返利我也会返给你。固然,算法是长时间的事,就算不是为了面试也建议一段时间刷几题。
博客,视频
框架方面虽然我暂时了解的很少,可是下半年也准备花时间在这上面还有 nodejs 上面。就算你不会,下面这几个问题你也要弄懂。
mvvm 和 mvc 的区别,双向绑定原理,虚拟 dom、diff 算法,spa 原理。
这一块的话 ES6 标准入门里面有,让后网上也不少,最主要的是本身实现一下,而后比较里面的不一样。由于实验室技术比较落后,这方面的东西没有用过,因此我也只是经过简单的 demo 测试过他们中的一些区别,了解的也不是特别深。可是必定要亲自动手实现。这样才能加深本身对这方面的理解
这些东西你准备好的话,基本一面就没问题了。可是若是想进大厂的话,计算机基础,后台的东西你都要有所了解,由于你们能力都差很少,因此面试官最重视的仍是你的基础。
刚开始的时候确定是看书,造成完整的知识体系。而后针对某些重点逐个攻破。最后的话能够看一些他人整理的资料,面经,查缺补漏,常常总结。这里面最重要的就是常常复习,有代码必定要写代码。最忌讳的就是看完就结束,不总结,不复习,这样知识留存率过低了,可能你暂时记下来了,可是过段时间就忘了。重要的函数要背下来,好比我常常天天隔几天写一下深拷贝,防抖节流,compose 函数,apply,bind,call 的实现等。这些经常使用的我以为考到的可能比较大,而且能加深本身的理解。
固然了,经过写博客的形式来总结最好不过了,由于有人与你互动,因此可以提升你的学习积极性,可是须要注意版权的问题,从书上整理的内容若是大规模引用的话,最好标注出处。并且若是有面试官问到的话,常常写博客也是个加分项。接下来准备把计算机基础,算法,框架,nodejs 这些东西补一补。虽然秋招结束了,可是学习是一生的事情。
书单:JavaScript 高级程序设计,你不知道的 JavaScript 上中,ES6 标准入门,CSS 权威指南,DOM 编程艺术。(可选)JavaScript 忍者秘籍,高性能 JavaScript,深刻浅出 nodejs,高效前端。
微信及连接: