前端面试及学习分享


拿的offer就不多就两个(vivo,作业帮,头条三面结束已经在池子里面躺了一个月了 :),想来分享一下自己的经验,把自己的心得体会分享给在为秋招努力的人或者明年即将步入秋招的人,也感谢牛客,剑指offer的算法题给我带来了很大的提升。

先说一下我自身的情况,去年八月份到港中文读研,开始接触前端,课上有网页编程课,html/css/js有教,但是教得不深,服务端用nodejs。主要还是课下的自学,期间到咸鱼上买了很多课,自己实践,最早的时候做过静态页面(应该大家都是这样过来的吧:),网页扫雷,贪吃蛇,也有用Nodejs, mongodb写过web server(非常基础的一些网页)。后来春招,真的惨不忍睹,投了五六十个简历,也面了好几家,都没戏,不过是一段经历,我个人还是觉得有面试机会一定要多尝试,每次经历过之后就会发现自己的不足,我也发现每次面试完后的提升是最大的,因为就感觉受打击了,还有好多不懂的地方,不清楚的地方,然后就会借着问题开始疯狂浏览csdn,cnblog。所以有面试机会一定要把握。秋招是一个很好机会很多的时段,每个人可能也只有一次秋招,一定要把握好,不要等到春招的时候才后悔莫及,春招的岗位特别少,基本都是补录,或者就是公司出来宣传。因为经历了春招,秋招的时候面试时谈吐就自然很多,不会很紧张,即使答不上来吧,但也能和面试官说一句,这个问题我没经历过,但我思考了可行的方案,我可以大致说一下(这样给面试官的感觉就是,面对问题有独立思考的能力,敢于去尝试,结合自身的想法给出解决方案)

后来四月份来到了实习公司,一家金融公司,但做的是微信的小游戏(不要问我为什么hhhhh,团队搞创新的,和公司的主营业务不相干的我们都做)。也是这个机会,去接触了实际的开发,用的TypeScript(后来发现TypeScript面试的时候挺加分的,大家也不用有太大的焦虑担心自己没有其他什么优势点,每个人都是独特的,肯定都有自己的独特的优势点,只是可能你自己还没发现),cocos游戏引擎,也有用Spring-boot写一些游戏的后端接口。我感觉这段时间对算法,对功能的实现提升是最大的,明显和自己瞎折腾有很大的区别,也就接着这个机会狠狠地了解实践了es6(自己瞎搞的时候就纯粹敲es5,什么promise, async/await都不会去用,后来才发现,真香)。所以有机会我觉得一定要出来实习,实习所接触到的东西基本都是面对大用户群体,你所实现的功能也是直接给用户使用,和学校里面学的东西还是有一定的不同。

对于react、vue、webpack这些我都没有真正地在业务层面上去实现过,但是面试的时候,只要你有前端相关的项目经历,就大胆去面吧,面试更看重的基础的东西,比如js那些基本原理,对于框架,只是一种工具,更重要的我觉得应该是学习能力。

关于前端复习的纲领

我之前在牛客上收藏过一个帖子,觉得那个大佬总结得很好,基本的知识点都罗列出来了,我直接拿过来分享给大家,那位大佬的牛客社区网名是:AmbitionC。可以跟着这个这个纲领把知识点一个一个过掉,肯定会有很大的提升,对于算法方面,大家也知道算法练内功,锻炼思维逻辑能力,牛客上把剑指offer刷一刷,当刷过一遍再回去二刷的时候,就会发现:我擦,自己功能实现起来怎么变快了:)。

JS

  1. 原始值和引用值类型及区别

  2. 判断数据类型typeof、instanceof、Object.prototype.toString.call()、constructor

  3. 类数组与数组的区别与转换

  4. 数组的常见API

  5. bind、call、apply的区别

  6. new的原理

  7. 如何正确判断this?

  8. 闭包及其作用

  9. 原型和原型链

  10. prototype与proto的关系与区别

  11. 继承的实现方式及比较

  12. 深拷贝与浅拷贝

  13. 防抖和节流

  14. 作用域和作用域链、执行期上下文

  15. DOM常见的操作方式

  16. Array.sort()方法与实现机制

  17. Ajax的请求过程

  18. JS的垃圾回收机制

  19. JS中的String、Array和Math方法

  20. addEventListener和onClick()的区别

  21. new和Object.create的区别

  22. DOM的location对象

  23. 浏览器从输入URL到页面渲染的整个流程(涉及到计算机网络数据传输过程、浏览器解析渲染过程)

  24. 跨域、同源策略及跨域实现方式和原理

  25. 浏览器的回流(Reflow)和重绘(Repaints)

  26. JavaScript中的arguments

  27. EventLoop事件循环

  28. 宏任务与微任务

  29. BOM属性对象方法

  30. 函数柯里化及其通用封装

    1. JS的map()和reduce()方法

ES6

  1. let、const和var的概念与区别

  2. 变量提升与暂时性死区

  3. 变量的结构赋值

  4. 箭头函数及其this问题

  5. Symbol概念及其作用

  6. Set和Map数据结构

  7. Proxy

  8. Reflect对象

  9. Promise(手撕Promise A+规范、Promise.all、Promise相关API和方法)

  10. Iterator和for...of(Iterator遍历器的实现)

  11. 循环语法比较及使用场景(for、forEach、for...in、for...of)

  12. Generator及其异步方面的应用

  13. async函数

  14. 几种异步方式的比较(回调、setTimeout、Promise、Generator、async)

  15. class基本语法及继承

  16. 模块加载方案比较(CommonJS和ES6的Module)

  17. ES6模块加载与CommonJS加载的原理

HTML/CSS

  1. CSS权重及其引入方式

  2. <a></a>标签全部作用

  3. 用CSS画三角形

  4. 未知宽高元素水平垂直居中(方案及比较)

  5. 元素种类的划分

  6. 盒子模型及其理解

  7. 定位方式及其区别(文档流)

  8. margin塌陷及合并问题

  9. 浮动模型及清除浮动的方法

  10. CSS定位属性

  11. display及相关属性

  12. IFC与BFC

  13. 圣杯布局和双飞翼布局的实现

  14. Flex布局

  15. px、em、rem的区别

  16. Less预处理语言

  17. 媒体查询

  18. vh与vw

  19. H5的语义化作用及语义化标签

  20. Web Worker和Web Socket

  21. CSS3及相关动画

  22. 如何实现响应式布局

  23. SEO的概念及实现

  24. HTML5的新特性

  25. Less和Sass使用

HTTP与计算机网络

  1. TCP/IP协议分层管理

  2. 三次握手四次挥手机制及原因

  3. HTTP方法

  4. GET和POST的区别

  5. HTTP建立持久连接的意义

  6. HTTP报文的结构

  7. HTTP状态码

  8. Web服务器及其组成

  9. HTTP报文首部

  10. HTTP通用首部字段

  11. HTTP请求首部字段、响应首部字段、实体首部字段

  12. Cookie相关首部字段

  13. HTTPS与HTTP区别及实现方式

  14. Cookie与Session

  15. 基于HTTP的功能追加协议(SPY、WebSocket、HTTP)

  16. 常见的Web攻击分类

  17. TCP与UDP区别

  18. 存储机制localStorage、sessionStorage与Cookie存储技术

  19. XSS攻击及防御

  20. CSRF攻击及防御

https://www.nowcoder.com/discuss/258810来源:牛客网

最后,祝大家都收获自己心仪的offer!

#前端##学习路径#
全部评论

相关推荐

点赞 评论 收藏
转发
头像
04-09 14:29
Java
点赞 评论 收藏
转发
7 62 评论
分享
牛客网
牛客企业服务