第一部:JavaScript面向对象编程
javascript是前端开发的核心,如果将前端开发类比为车的话,javascript就是发动机;将前端开发类比为人的话,javascript就是心脏;但现在很多前端开发都本末倒置,极度推崇框架,都觉得自己js学的不错了。了解原型链的定义,知道闭包是什么,js的继承方法也背了几个,变量提升也涉猎过,他开始就飘了,觉得js已经学到尽头了。(如果上述这些你都不知道,就别浪费时间看这篇进阶文了,我的入门文在哪等着你,来或不来它都不离不弃)
但亲,这些你真的会用吗。在开发中你真的有用到面向对象的开发思想吗?在没背面试题的情况下,你能按照自己的理解实现一个Object.create()吗?
let p={name:'jjj'};
function myCreate(p){
var ins;
function F(){};
F.prototype=p;
ins = new F();
return ins;
}
你真的了解js继承的优缺点吗?在开发中你有利用这些优缺点选择性的去使用过这些继承方法吗?当面试官问你对js继承的理解,你还打算背那些网上的“标准答案”吗?这些都是初级前端工程师干的事,面试官要听到的是你结合自己的项目或者库去讲你是如何使用js继承的,退一万步讲你也要分析一下jQuery是如何实现的吧,别再背那些文字答案了,好好学js吧。
说了这么多,如果不给资源就是我耍流氓了。js面向对象编程的学习视频以及自己的学习笔记都可以提供给大家。一起进步,才是真的进步。

第二部:服务端渲染
大部分前端开发面试框架的时候,面试官的评价就是会用,好一点的就是用的很熟练。其实这都是不太好的评价,因为你毫无亮点与突出的地方。但如果你涉猎过服务端渲染,甚至自己造过一个服务端渲染的轮子,那面试官一定会对你另眼相待。
我上家公司因为对SEO有严格的要求,当时我们的主站用的就是React的服务端渲染,我自己写了一个小的React的服务端渲染框架,当然我只是站在巨人的肩膀上实现的(看了大佬的视频),可以给大家看看我部分的代码以及笔记。
const getStore=()=>{
//每次执行这个函数都会生成一个新的store,这样每个用户拿到的都是一个新的store
return createStore(reducer,applyMiddleware(thunk));
};
//每次getStore执行都会生成一个新的store,避免所用用户都用同一个store
<Provider store={getStore()}>
<BrowserRouter>
{Routes}
</BrowserRouter>
</Provider>
数据的脱水和注水
数据注水,就是把服务端的store数据的存储到window.context中
<script >
window.context={
state:${JSON.stringify(store.getState())}
}
</script>
数据的脱水,及第一次渲染时,服务端已经请求了数据,store里面有值,客户端不需要再次请求
自己搭建完react服务端渲染框架之后,你不止能学习到服务端渲染的知识,你还能温习react、express、webpack-server的知识。我知道很多前端学习node.js在公司都是没有用武之地的,现在你可以用它来写服务端的代码了,你的node.js再也不只是停留在看过文档的阶段了。
第三部:gitHub项目
github算是我们程序员的老巢了,如果你连github账号都没有,那我只能。。。(此处省略一万字)。很多资深的前端面试官,他们都比较看重开发者在github上有没有自己的项目,像小型的ui库,在公司的开发中拿来就能用的等等。在这一方面自己做的也不够好,以后和大家一起进步。
github上很多大神都有分享自己的项目,我们可以先学习,然后自己再尝试着去写。只说不练那是假把式,只看不写那是骗自己的假把式。话都说到这了不给大家分享一位大神的github地址就是我不懂事了yexiaochai - Overviewgithub.com
作为程序员,项目就是我们自己的名片,一定要有一两个拿的出手的作品,那样你的身价才能水涨船高。
第四部:高级前端面试
讲了这么多废话,我们的目的是什么,当然是为了升职加薪啊!不要把自己的“初心”忘了。我是功利主义者,我不推荐做无用功,我觉每个人应该目的明确一点(各位轻点喷我)。前面三部曲都是为了最后这一部做铺垫的,我们最后要面对的都是面试,所以一定要系统的进行前端高级面试总结。
我个人喜欢进行分类的整理,前端知识点杂且多,分类进行整理及方便查阅也有利于我们记忆。每次面试前抽个半天过一遍,心中便有沟壑。以后真的可以做到世界那么大想走就走,因为我们再也不需要一个很长的面试准备期了。
Comments | 1 条评论
我是第一个留言的