生活、工作和兴趣
- HTML的基本结构
- 基本的表单标签
- HTML5标签
- Canvas
- Websocket
- SVG
- CSS基础知识
- 伪类
- 水平垂直居中
- 经典布局
- BFC
- JavaScript基础知识
- 声明
- 内置类型
- typeof 的使用
- 数据类型转换
- 转义字符
- 运算符
- 调用堆栈
- 执行上下文
- 全局执行上下文
- 函数执行上下文
- eval执行上下文
- 执行上下文栈和变量对象
- 变量提升
- 函数提升
- 内存空间
- 内存机制
- 分配内存
- 使用内存(读写)
- 释放内存
- 垃圾回收
- 引用计数(现代浏览器不再使用)
- 标记清除(常用)
- 垃圾回收
- 常见内存泄露及如何避免
- 对于不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)
- 四种常见的内存泄露
- 意外的全局变量
- 未声明的变量
- 使用this创建的变量
- 被遗忘的计时器或回调函数
- 定时器引起
- 观察者addEventListener
- 脱离DOM的引用
- 闭包
- 意外的全局变量
- 执行上下文
- 作用域和闭包
- 划分作用域的意义
- 函数作用域
- 规避同名变量之间的冲突
- 命名空间
- 块级作用域
- let可以将变量绑定到所在的任意作用域中(通常是{...}内部)
- 函数作用域
- 划分作用域的意义
- this
- 原型和原型链
- 深浅拷贝
- 浅拷贝(shallow copy):只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存;
- 深拷贝(deep copy):复制并创建一个一摸一样的对象,不共享内存,修改新对象,旧对象保持不变。
- 深入数组
- 数组扁平化的六种实现方式
- 递归实现
- reduce实现
- flat
- 扩展运算符
- toString
- apply
- 数组扁平化的六种实现方式
- 面向对象三要素
- 封装
- 继承
- 多态
- 手写api
- V8引擎的工作原理
- 垃圾回收机制
- Event loop
- 异步
- 回调函数
- Promise
- generator
- async/await
- 函数式编程
- 偏应用
- 函数柯里化
- 组合函数
- ES6+
- 基础知识
- 基础知识
- 正则基础知识
- LeetCode
- 二叉树
- 链表
- 数组
- 网络基础知识
- HTTP
- HTTPS
- TCP/IP
- 网络安全
- 浏览器缓存
- 缓存类型
- 缓存位置
- 缓存过程分析
- HTTP请求流程
- 导航流程
- 渲染流程
- 缓存机制
- Webpack
- 基础知识
- 构建方式
- 配置
- 优化
- babel
- loader
- library
- vueLoader
- Vue
- Vue-Router
- Vuex
- Vue源码相关
- Taro