- 很老土,但是我仍旧需要一些“鸡汤”假装自己还可以被激励
空手套题(一)-4399/六一/交易猫/网易/博智林/浩鲸云
米哈游面试官:你是工作一年吗?你是社招吧?你的基础为什么这么差?
20.12.2 新增:“你现在的知识体系太不系统了,面试只是在补漏,但是要系统地去学习前端”
所以我开始了👇
- 剑指系列
一、函数式编程
- 函数是一等公民
- 高阶函数
- 闭包
- 函数式基础:纯函数、副作用、柯里化、管道、函数组合
二、JavaScript
-
- 同步模式/异步模块
- 回调函数
- Promise
- Generator:ES2015提供,生成器函数
- Async / Await
-
-
let / const
作用域:值和表达式在其中 "可见" 或可被访问到的上下文
-
数组解构
-
对象解构
-
模板字符串字面量
字面量(literal)是用于表达源代码中一个固定值的表示法(notation)
-
带标签模板字符串
-
字符串的扩展方法:includes、startsWith、endsWith
-
参数默认值:enable
-
剩余参数
-
展开数组
-
箭头函数与this
-
对象字面量的增强
-
Object.assign / Object.is:对象方法
-
Proxy:监视属性
-
Reflect:提供了统一一套用于操作对象的API
-
Promise
-
class:继承(extends)
-
静态方法(static)
-
Set(集合):为数组元素去重
-
Map
-
symbol:无相同的smybol键值
-
for...of循环
-
迭代器:Iterable
-
生成器:Generator
-
ES Modules2016、2017比较
-
-
-
强弱类型
-
Flow
-
TypeScript语言规范与基本应用
-
-
- 内存管理
- 垃圾回收与常见GC算法
- 引用计数
- 标记清除
- 标记整理
- V8引擎的垃圾回收
- 空间复制
- 标记清除
- 标记增量
- 新生代回收
- 老生代回收
- 浏览器Performance工具
- 代码优化实例
- 慎用 / 缓存全局遍历
- 原型新增方法
- 避开闭包陷阱
- 避免属性访问方法使用
- For优化、最优循环
- 节点添加优化、克隆优化节点操作、直接量替换Object操作
三、工程化
- 开发脚手架及封装自动化构建工作流
- Yeoman
- 自定义Generator:Generator本质上就是一个NPM模块
- Plop
- Grunt
- Gulp
- 实例
- 如何自定义一个小型脚手架工具
- 使用 Grunt 完成项目的自动化构建
- 使用Gulp完成项目的自动化构建
- 以上三点详见./code
- ES Modules模块化规范
- Webpack
- Rollup
- Parcel
- ESLint
五、Vue.js框架源码与进阶
前置知识:Vue框架基础——单页面应用、Vue基础结构、Vue生命周期、Vue语法和概念
-
- 动态路由传参
- 嵌套路由
- 编程式导航
- Hash / History / nodejs+nginx服务器配置
- 实现自己的Vue-router
-
- 数据驱动
- 数据响应
- 发布 / 订阅模式
- 观察者模式
- 代码模拟vue响应式原理:Vue、Observer、Compiler、Dep、defineReactive
-
-
Snabbdom使用、作用、导入、核心
-
Snabbdom代码演示
- h()
- VNode
- patch(oldVnode, newVnode )
- createElm
- patchVnode
- updateChildren
-
- Vue初始化:简述 Vue 首次渲染的过程
- 响应式:简述 Vue 响应式原理
- 虚拟DOM
- 模板编译:简述 Vue 中模板编译的过程
- 组件化