秋招前端复习

前端知识点汇总
前端知识点是我在准备秋招过程中,看书和经验贴中总结到的一些知识点,不仅面试中经常问到,同时对于自己未来的工作和学习也很重要,也欢迎大家一起补充~
一、JavaScript

  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. 函数柯里化及其通用封装

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

  32. ”和“=”的区别

  33. setTimeout用作倒计时为何会产生误差?
    二、ES6

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

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

  36. 变量的结构赋值

  37. 箭头函数及其this问题

  38. Symbol概念及其作用

  39. Set和Map数据结构

  40. Proxy

  41. Reflect对象

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

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

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

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

  46. async函数

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

  48. class基本语法及继承

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

  50. ES6模块加载与CommonJS加载的原理
    三、HTML/CSS

  51. CSS权重及其引入方式

  52. 标签全部作用

  53. 用CSS画三角形

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

  55. 元素种类的划分

  56. 盒子模型及其理解

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

  58. margin塌陷及合并问题

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

  60. CSS定位属性

  61. display及相关属性

  62. IFC与BFC

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

  64. Flex布局

  65. px、em、rem的区别

  66. Less预处理语言

  67. 媒体查询

  68. vh与vw

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

  70. Web Worker和Web Socket

  71. CSS3及相关动画

  72. 如何实现响应式布局

  73. SEO的概念及实现

  74. HTML5的新特性

  75. Less和Sass使用
    四、HTTP与计算机网络

  76. TCP/IP协议分层管理

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

  78. HTTP方法

  79. GET和POST的区别

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

  81. HTTP报文的结构

  82. HTTP状态码

  83. Web服务器及其组成

  84. HTTP报文首部

  85. HTTP通用首部字段

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

  87. Cookie相关首部字段

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

  89. Cookie与Session

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

  91. 常见的Web攻击分类

  92. TCP与UDP区别

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

  94. XSS攻击及防御

  95. CSRF攻击及防御
    五、前端工程化

  96. 前端工程化的流程(架构选型、业务开发、测试、打包构建、部署上线、项目监控)

  97. Webpack基本概念与配置

  98. loader与plugin原理与实现

  99. Webpack的模块热替换及实现

  100. Webpack的优化问题

  101. SPA及其优缺点

  102. SSR实现及优缺点

  103. 设计模式(工厂模式、单例模式、原型模式、代理模式、适配器模式、观察者模式等…)
    六、React

  104. React自身特点及选型时考虑

  105. React与VUE的异同

  106. Virtual DOM

  107. React生命周期

  108. Diff算法

  109. 受控组件与非受控组件

  110. 高阶组件

  111. Flux架构模式(涉及MVC/MVVM、Flux)

  112. Redux设计概念、设计原则、方法、redux实现异步流的库

  113. 纯组件(Pure Component)与shouldComponentUpdate关系

  114. Redux中的组件与connect函数

  115. React Fiber架构

  116. React Hooks的作用及原理
    七、NodeJS

  117. NodeJS基本概念与特点

  118. CommonJS规范、核心模块

  119. Node的异步I/O

  120. Node的内存控制

  121. Node构建网络服务(TCP、HTTP、Web Socket服务等)

  122. Node的进程
    八、需要会手撕的代码部分

  123. Promise(A+规范)、then、all方法

  124. Iterator遍历器实现

  125. Thunk函数实现(结合Generator实现异步)

  126. async实现原理(spawn函数)

  127. class的继承

  128. 防抖和节流

  129. Ajax原生实现

  130. 深拷贝的几种方法与比较

  131. 继承的几种实现与比较

  132. 未知宽高的元素水平垂直居中

  133. 三栏布局的实现

  134. 两栏布局的实现

  135. React高阶组件

  136. 数组去重

  137. 几种排序算法的实现及其复杂度比较

  138. 前序后序遍历二叉树(非递归)

  139. 二叉树深度遍历(分析时间复杂度)

  140. 跨域的实现(JSONP、CORS)
    九、数据可视化

  141. Canvas和SVG的区别

  142. 在考虑设计可视化图表时,结合Canvas和SVG特性会怎么取舍

  143. 常见的可视化组件库

  144. 可视化组件库如Echarts的设计思路

  145. 一些偏向底层的可视化组件库和前端框架结合方面需要考虑哪些问题

  146. 可视化组件如何做到数据驱动?
    十、计算机基础

  147. 计算机系统

  148. 线程与进程

  149. 常见的git指令

  150. Linux相关指令

  151. 其他类型的编程语言(如Java)

  152. 数据库
    前端面试题汇总
    前端面试题是我面试过程中遇到的面试题,每一次面试后我都会复盘总结。因为我每次都发在牛客上,所以具体可以看我之前的帖子哈
    面试经验汇总
    面试经验汇总是我在秋招和面试过程中的一点体会和总结,每个人的学习方法和调整心态的方式不一样,也仅供参考哈~
    看过的书籍

  153. 《JavaScript高级程序设计》——红宝书。多看几遍,其意自现

  154. 《高性能JavaScript》——很不错的书,在性能方面多多考虑

  155. 《JavaScript语言精粹》——提纲挈领,花费时间较少加深印象

  156. 《你不知道的JavaScript(上中下)》——据说很精彩,还没看多少

  157. 《ES6标准入门》——必看

  158. 《深入React技术栈》——部分章节介绍很精彩,但v16以后需要自己看文档

  159. 《深入浅出NodeJS》——后端部分也很重要,还没看完

  160. 《DOM编程艺术》——没看多少

  161. 《图解HTTP》——浅显易懂介绍HTTP,可结合博客深入理解

  162. 《剑指offer》——题目都要刷一遍以上才行

  163. 《数据之美》——数据可视化入门书籍

  164. 《数据可视化的基本原理与方法》——数据可视化的一些原理知识
    一、心态
    求职过程中,个人认为最重要的是心态的保持,秋招其实是一个周期很长的过程,从开始的复习准备到参加笔试面试到最后的等待结果,难免会经历挫折和打击,但是心态对复习状态和面试表现影响真的很大,所以心态是首先需要注意的问题(我自己在7月和8月挂过很多,中间一度很焦虑,懂的同学都懂)。下面是我想到的一些小tips,可以看看

  165. 在准备笔试面试的复习阶段,可以对自己有高一点的期待,适当订一些意向公司,好好准备面试题,知识点等

  166. 开始笔试面试初期,经常会很紧张,不知道该怎么回答,所以最好的办法就是多参加,积累经验

  167. 笔试面试逐渐多起来之后,经常会陷入焦虑,患得患失。这个时候需要降低自己的期望,不要考虑太远的目标,每天制定计划,目光关注在当天的任务,甚至以半天为单位,按部就班复习(解决焦虑的最好办法就是行动)

  168. 和同学多交流吐槽,适当发泄

我个人的心态转变是在挂了网易的面试之后,之前基本就是面一个挂一个,心态一度很崩溃,但是也没有办法。挂完网易后,晚上和实验室的同学出去吃了一顿饭,聊了很多,之后心态就放开了,佛系了,一切随缘。。在那之后的面试反而基本面一个过一个(可能也因为复习整理了一段时间)
二、方向选择
因为读研期间,老师的项目可能对自己的求职方向和技术栈都有一定影响,所以需要提前确定自己的工作方向,并且安心的复习准备。最好不要想着我同时准备A和B,如果A形式不好,就找B。这样可能会导致分心,A和B准备的都不充分。

如果在工作方向之间有纠结的话(如A和B),不妨可以尝试权重法,自己列举方向A和B对你来说,优势在哪,权重多大,然后比较。比如我更喜欢A,有xxx经历,A权重加20分。B的行业需求更大,B权重加5。个人在A和B的核心竞争力多少。。自己根据自己的情况评估。
三、面试技巧

  1. 个人自我介绍一般可以分为三个部分:自己的个人情况(姓名、学校、年级等)+特殊的经历及收获(项目、比赛、实习)+对应聘公司的理解(为什么要来,如何结合部门的业务谈谈自己的能力和业务的匹配更好)

  2. 面试题会的就说,如果有准备比较充分,可以多说一点,埋一点坑,一般面试官会顺着往下问。如果完全不会,就说自己没了解过。不太确定的,可以先和面试官说自己不太确定,然后说一下自己认为的答案

  3. HR面的一些比较常见的问题,可以提前找一找,准备适合自己情况的回答

  4. 有的时候,提前了解一下自己投递的部门的业务,并结合自己的知识谈一谈自己的理解和认识,会有意想不到的效果

  5. 面试提问环节,一般前两面都是部门内的leader或者同事面试,所以我都会问一些部门的业务方面的问题,并且结合自己的理解聊一下。如果是交叉面或者部长面,我会问一下从面试和简历,他们对我的今后学习的建议(一般都会对你面试进行评价,这时你应该就能感觉出来自己能不能过了,然后面试官给出建议),因为部长面和交叉面,面试官的层次和眼界更高,单纯的问技术方面的问题,其实不如问一些对自己的职业方向建议的问题,这样可能收益更大。不建议直接询问面试结果,因为一方面面试官不会说,第二方面会显得心虚。最后HR面我只会问后续的通知时间。
    四、复习准备

  6. 在开始准备复习前,可以根据自己的个人情况,列举一下自己需要准备哪些方面的知识,看哪些书,时间如何安排。前端方向的知识比较广,面试时不仅要有广度,深度也很重要(事实上,面试就是差异化竞争,同样一些问题你准备了,别人一定也准备了,但是对于同一个问题,理解的深度完全取决于自己的准备情况。一般在回答这个问题的基础上,再有一点点延伸,只说到概念和关键名词即可,面试官可能会顺着往下问)比如面试官问你事件循环机制,可以延伸介绍同步异步、异步的几种方法、微任务和宏任务等,一般都会接着往下问的

  7. 及时总结。看完一本书的一个章节时,尝试去用自己的理解概括总结,最好记录一下,便于复习。参加完每一次面试后,马上回忆问到的题目,总结记录,想想哪里回答得不好(我基本每一次面试完面经都会发到牛客网上)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值