秋招复习计划

  |  

前言

现在距离秋招还有不到一年的时间,虽然很多知识点还学完,但还是得开始复习。学过的就当复习,没学过的查漏补缺。采用高中时候的复习方法,销账。


74



JavaScript知识点

  • (√)原始值和引用值类型及区别
  • (√)判断数据类型typefo、instanceof、Object.prototype.toString.call()、constructor
  • (√)类数组与数组的区别与转换
  • (√)数组的常见API
  • (√)bind、call、apply的区别
  • (√)new的原理
  • (√)如何正确判断this
  • (√)闭包及其作用域
  • (√)原型和原型链
  • (√)prototype和__proto__的关系和区别
  • (√)继承的实现方法及其比较
  • (√)深拷贝与浅拷贝的区别
  • (√)防抖与节流
  • (√)作用域和作用域链、执行期上下文
  • (√)DOM常见的操作方法
  • (√)Array.sort()方法与实现机制
  • (√)Ajax的请求过程
  • (√)JS的垃圾回收机制
  • (√)JS中的String、Array和Math方法
  • (√)addEventListener和onClick()的区别
  • (√)new和Object.create的区别
  • (√)DOM的location对象
  • (√)浏览器从输入URL到页面渲染的整个流程(涉及计算机网络数据传输过程、浏览器解析渲染过程)
  • (√)跨域、同源策略及跨域实现方式与原理
  • 浏览器的回流(Reflow)和重绘(Repaints)
  • JavaScript中的arguments
  • EventLoop事件循环
  • 宏任务与微任务
  • BOM属性对象方法
  • 函数柯里化及其通用封装
  • JS的map()和reduce()方法
  • “==”与”===”的区别
  • setTimeout用作倒计时为什么会产生误差

ES6知识点

  • (√)let、const和var的概念与区别
  • (√)变量提升与暂时性死区
  • (√)变量的解构赋值
  • (√)箭头函数及其this指向问题
  • (√)Symbol的概念及其作用
  • (√)Set和Map数据结构
  • Proxy
  • Reflect对象
  • Promise(能手写Promise A+规范、Promise.all、Promise相关API和方法)
  • Iterator和for…of(Iterator遍历器的实现)
  • 循环语法的比较及其使用场景(for、forEach、for…in、for….of)
  • Generator及其异步方面的应用
  • async函数
  • 几种异步方式的比较(回调、setTimeout、Promise、Generator、async)
  • class基本语法及其继承
  • 模块加载方案的比较(CommonJS和ES6中的Module)
  • ES6模块加载与CommonJS加载的原理

HTML/CSS知识点

  • CSS权重及其引入方式
  • a标签的全部作用
  • CSS绘制基本图形
  • 未知高宽元素实现水平垂直居中(各种方案及其比较)
  • 元素种类的划分
  • 盒子模型及其理解
  • 定位方式及其区别(涉及文档流)
  • margin塌陷及合并问题
  • 浮动模型及清理浮动的方式
  • CSS定位属性
  • display及其相关属性
  • IFC与BFC
  • 圣杯布局和双翼布局的实现
  • Flex布局
  • px、em、rem的区别
  • less预处理语言
  • 媒体查询
  • vh与vw
  • H5的语义化作用及语义化标签
  • Web Worker和Web Socket
  • CSS3及其相关动画
  • 如何实现响应式布局
  • SEO的概念和实现
  • HTML5的新特性
  • Less和Sass的使用

Vue知识点

  • Vue的生命周期
    • beforeCreate
    • created
    • beforeMounte
    • mounted
    • beforeUpdate
    • updated
    • beforeDestroy
    • destroyed
  • 什么是MVVM模式?与MVM的区别
  • 完整的生命周期函数到底是什么
  • 什么是组件、Vue中如何封装一个组件、为什么要封装组件
  • 组件中的data为什么是一个函数
  • axios的基本概念、使用方法及其底层实现原理
  • Vuex的基本概念、使用方法和使用场景
  • Vue基本指令
    • v-if
    • v-bind
    • v-on
    • v-for
    • v-text
  • 路由
    • vue-router的基本概念、使用方法和底层实现原理
    • spa单页面应用
    • history和hash两种模式的区别及其对应的使用场景
    • 声明式导航:router-link
    • 多层路由
    • 路由跳转的两种方法:router-link to 和 this.$router.push()的区别及其对应的使用场景
  • v-model的基本概念和其底层实现原理
  • swpier
  • 如何使用路由懒加载来保持组件存活,避免反复渲染
  • vue-loader的基本概念及其底层实现
  • slot插槽
  • 虚拟DOM(概念、使用、手写、优缺点、使用场景)
  • 自定义指令的方法
  • vue的组件间通信
  • 异步函数
  • 模块化开发
  • vue计算属性
  • vue-cli脚手架的概念与使用
  • Element-ui

HTTP与计算机网络知识点

  • TCP/IP协议分层管理
  • 三次握手四次挥手机制及原因
  • HTTP方法
  • GET和POST 的区别
  • HTTP建立持久连接的意义
  • HTTP报文结构
  • HTTP状态码
  • Web服务器及其组成
  • HTTP保温首部
  • HTTP通用首部字段
  • HTTP请求首部字段、响应首部字段、实体首部字段
  • Cookie与Session
  • 基于HTTP的功能追加协议(SPY、web Socket、HTTPS)
  • 常见的Web攻击分类
  • TCP和UDP的区别
  • 存储机制localStorage、sessionStorage与Cookie存储技术
  • XSS攻击与防御
  • CSRF攻击与防御

NodeJS知识点

  • NodeJS基本概念与特点
  • CommonJS规范、核心模块
  • Node的异步I/O
  • Node的内存控制
  • Node构建网络服务(TCP、HTTP、Web Socket服务等)
  • Node的进程控制

前端工程化

  • 前端工程化的流程(架构选型、业务开发、测试、打包构建、部署上线、项目监控)
  • Webpack基本概念与配置
  • loader与plugin原型与实现
  • Webpack的模块热替换及实现
  • SPA及其优缺点
  • SSR实现及其优缺点
  • 设计模式:
    • 工厂模式
    • 单例模式
    • 原型模式
    • 代理模式
    • 适配器模式
    • 观察者模式
    • ….

数据可视化

  • Canvas和SVG的区别
  • 在考虑设计可视化图表时,结合Canvas和SVG特性怎么取舍
  • 常见的可视化组件库(Echarts)
  • 可视化组件库(Echarts)的设计思路
  • 一些偏向底层的可视化组件库和前端框架结合方面需要考虑哪些问题
  • 可视化组件如何做到数据驱动

计算机基础

  • 线程与进程
  • 常用的git指令
  • Linux常用指令
  • 其它类型的语言的编程基础(Java、Python)
  • 数据库

需要会手写的代码

  • Promise(A+规范)、then、all方法
  • Iterator遍历器的实现
  • Thunk函数实现(结合Generator实现异步)
  • async实现原理(spawn函数)
  • class继承
  • 防抖与节流
  • Ajax原生实现
  • 深拷贝的几种方式(附带比较)
  • 继承的几种实现
  • 未知高宽的水平垂直居中
  • 三栏布局
  • 两栏布局
  • 数组去重
  • 几种排序算法的实现和其复杂度的计算
  • 前序后序遍历二叉树(非递归)
  • 二叉树深度遍历(分析时间复杂度)
  • 跨域实现(JSONP、CORS)

算法题

  • (√)二维数组中的查找
  • (√)替换空格
  • (√)从尾到头打印链表
  • (√)重建二叉树
  • (√)用两个栈实现队列
  • (√)旋转数组的最小数字
  • (√)斐波那契数列
  • (√)跳台阶
  • (√)变态跳台阶
  • (√)矩形覆盖
  • (√)二进制中1的个数
  • (√)数值的整数次方
  • (√)调整数组顺序使奇数位于偶数前
  • (√)链表中倒数第K个节点
  • (√)反转链表
  • 合并两个排序的链表
  • 树的子结构
  • 二叉树的镜像
  • 顺时针打印矩阵
  • 包含min函数的栈
  • 栈的压入、弹出序列
  • 从下往下打印二叉树
  • 二叉搜索树的后续遍历序列
  • 二叉树中和为某一值的路径
  • 复杂链表的复制
  • 二叉搜索树与双向链表
  • 字符串的排序
  • 数组中出现次数超过一半的数字
  • 最小的K个数
  • 连续子数组的最大和
  • 整数中1出现的次数(从1到n整数中1出现的次数)
  • 把数组排成最小的数
  • 丑数
  • 第一个只出现一次的字符位置
  • 数组中的逆序对
  • 两个链表的第一个公共节点
  • 数字在排序数组中的出现次数
  • 二叉树的深度
  • 平衡二叉树
  • 数组中只出现一次的数字
  • 和为S的连续正数序列
  • 和为S的两个数
  • 左旋转字符串
  • 反转单词顺序列
  • 扑克牌顺子
  • 孩子们的游戏
  • 求1+2+3+…+n
  • 不用加减乘除做加法
  • 把字符串转换成整数
  • 数组中重复的数字
  • 构建乘积数组
  • 正则表达式匹配
  • 表示数值的字符串
  • 字符流中第一个不重复的字符
  • 链表环的中的入口节点
  • 删除链表中重复的节点
  • 二叉树的下个节点
  • 对称的二叉树
  • 按之字形顺序打印二叉树
  • 把二叉树打印成多行
  • 序列化二叉树
  • 二叉搜索树的第K个节点
  • 数据流汇总的中位数
  • 欢动窗口的最大值
  • 矩阵中的路径
  • 机器人的运动范围
  • 剪绳子

[吴神博客中的部分答案]

[牛客网题目集]

复习用书

  • 《JavaScript高级程序设计》–入门宝典
  • 《高性能JavaScript》–性能优化的秘籍
  • 《你不知道的JavaScript(上中下)》–看了之后发现自己真的不知道JavaScript
  • 《ES6标准入门》–没看过
  • 《深入理解ES6》–我看的这个
  • 《深入浅出NodeJS》–没看过,NodeJS一直没找到一本好的书,这本可以看看
  • 《DOM编程艺术》–没看过,不过文档的DOM树操作还是很重要
  • 《图解HTTP》–没看过,感觉将的过于浅显
  • 《HTTP权威指南》–打算看这个
  • 《数据之美》–听说是数据可视化的入门书籍
  • 《数据可视化的基本原理与方法》–打算看看

博客地址与面经

[AmbitionC–面经]

[吴神博客]

我太难了

文章目录
  1. 1. JavaScript知识点
  2. 2. ES6知识点
  3. 3. HTML/CSS知识点
  4. 4. Vue知识点
  5. 5. HTTP与计算机网络知识点
  6. 6. NodeJS知识点
  7. 7. 前端工程化
  8. 8. 数据可视化
  9. 9. 计算机基础
  10. 10. 需要会手写的代码
  11. 11. 算法题
  12. 12. 复习用书
  13. 13. 博客地址与面经
  14. 14. 我太难了
|