第一部: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 - Overview​github.com

作为程序员,项目就是我们自己的名片,一定要有一两个拿的出手的作品,那样你的身价才能水涨船高。

第四部:高级前端面试

讲了这么多废话,我们的目的是什么,当然是为了升职加薪啊!不要把自己的“初心”忘了。我是功利主义者,我不推荐做无用功,我觉每个人应该目的明确一点(各位轻点喷我)。前面三部曲都是为了最后这一部做铺垫的,我们最后要面对的都是面试,所以一定要系统的进行前端高级面试总结。

我个人喜欢进行分类的整理,前端知识点杂且多,分类进行整理及方便查阅也有利于我们记忆。每次面试前抽个半天过一遍,心中便有沟壑。以后真的可以做到世界那么大想走就走,因为我们再也不需要一个很长的面试准备期了。