序秋招结束。面试了近20家公司,幸运拿到offer。感谢一直一起找工作面试的朋友,感谢这段时间陪伴我的人。这是一次难忘的经历。相信不亚于当年的高考。可能现在想想,高考算不了什么。或许只有经历过秋招的人才明白求职的艰辛和offer的来之不易。秋招值得回味,所以写这篇文章来整理一些资料和心得。知识点数据结构和算法数据结构和算法就不用说了,基本上比较好的公司都会问。栈、二叉树、平衡二叉树、链表图还没接触过,问的可能比较少。哈希表的各种基本排序算法(准备过程中尽量手写出来,尤其注意快速排序、归并排序、堆排序),它们的最优、最差、平均复杂度计算机网络前端重点关于准备TCP/IP协议、HTTP协议、HTTPS前端缓存:强缓存、协商缓存,了解各种HTTP请求头和功能的各个字段和不同含义。各种HTTP版本的优缺点、应用场景以及相应的优化。比如http1.0优化的TCP三次握手和四次握手,最好记住每次握手和握手都包含哪些字段,为什么会有第三次握手和第四次握手。一个常问的话题HTML理解HTML语义的各种新特性HTML4.0和HTML5.0的区别,如何解决HTML5的兼容问题CSSCSS这里主要问一下布局,理解CSS3的各种新特性,CSS3动画等等各种各种布局中去除inline-blockintervals的方法JavaScript这部分内容比较多,也是我准备比较多的部分。我不会详细列出。我会直接参考我准备的资料。它与es6有关。这部分很重要,基本都会深入分析prototype中的各种难点几个前端面试题,这里可以详细看看eventloop部分,面试容易问个人觉得中册笔试必备书《你不知道的JavaScript》,可以讲很多细节,看完笔试可以避免很多前端跨域跨域的补充,想想优点和各种跨域方法的缺点、约束和应用场景。比如jsonp跨域应用场景,为什么jsonp不安全?目前看过非常详细的闭包讲解前端安全XSS攻击、CSRF攻击、浏览器渲染原理、js执行机制。这两部分也要准备好。相关信息忘记了错误监控:这里总结一下:即时运行错误:(1)使用try...catch捕获;(2)使用window.onerror方法进行捕获;资源加载错误:1)用object.onerror方法捕获,为什么不用window.onerror?因为资源加载错误不会冒泡到window对象;2)使用performance.getEntries,使用该方法获取所有已加载的资源,与所有资源进行比较,看哪些没有加载成功;3)错误事件捕获;跨域js报错怎么抓?即“Scripterror”,解决方法1.在script标签中添加crossorigin字段,2.添加跨域HTTP响应头,Access-Control-Allow-Origin:*报错:1.使用ajax技术;2.使用Image对象报错(面试应该会回答这个)前端性能优化是重点,不过好像没看过专门的文章,《雅虎的35条军规》,能背多少就背多少尽你所能,你最能理解它。可以涉及到浏览器渲染原理。其他材料尽量写25000字,blog,blog,心得体会。以上都是部分数据,可能有点乱,但有些记不住了。大部分时间都是看论坛和博客,面试前搜一下相关公司的面试经验。接下来,总结一下面试过程中的心得体会。当面试官问你一个问题时,不要只回答一个问题,而是尽可能多地讲述关于这个问题的知识。前提是你懂,懂。.比如面试官问你React,你可以说说React的相关特性、应用场景和局限性,以及它和其他框架的区别,甚至React全家桶。再比如面试官问你前端缓存,那你把你知道的前端缓存都说出来,比如强缓存,协商缓存,缓存header,no-store和no-cache的区别等等,可能面试官就不会继续问你相关的问题了。我确实遇到过这种情况。您必须对面试过程充满信心。前期面试的时候,由于心理压力,面试的时候不是很自信,吃了不少苦头。面试官还提醒了你实习和项目。这两个可以说是重点,一定要提前整理。实习或项目中遇到的困难。在说话的过程中,一定要表现出提出问题、思考问题、解决问题的过程。口语模式的简单总结类似于:在实践过程中,我使用了XX工具或者XX方法,发现了XX问题,并通过XX方法解决了问题。然后通过对比说说为什么使用这个方法,比如因为这个方法和其他方法相比有xx的优势,如果用到一个库,那么也说说这个库的实现原理。总之,要体现你发现问题和解决问题的能力。为了解决困难的问题,你可以把它们写在一张纸上。面试前想想面试官可能会问你什么问题,然后查阅相关资料,整理答案,在每次面试后不断反思和完善自己的答案。一定要提前做好准备,不然面试官可能会让你说说遇到的困难,或者直接提问可能会一头雾水。永远记住:在准备过程中,多想想应用场景、优缺点、局限性等,回答问题的时候最好能够回答这些问题。比如你的项目用的是mongodb,面试官很可能会问你为什么用mongodb,它的优缺点是什么,和MySQL相比有什么优势。多想想更好的解决方案。例如,React使用redux状态管理。如果不允许redux,或者你觉得redux太麻烦,你会怎么办?Vuex怎么样?
