JavaScript 篇
-
- JavaScript的数据类型 ★★★
-
- 判断变量的类型 ★★★
-
- 数据类型转换 ★★
-
- 原型和原型链 ★★★
-
- 闭包及优缺点 ★★★
-
- call/apply/bind ★★★
-
- DOM 事件流和事件委托 ★★★
-
- Cookie/storage ★★★
-
- 数组和对象的常见方法 ★★
-
- new内部做了什么 ★
-
- 防抖和节流 ★
-
- requestAnimationFrame ★★
-
- this 指向 ★★
-
- 作用域链 ★
-
- let/const/var的区别 ★★★
-
- ES6 异步编程:Promist 和 async awiat ★★★
-
- 箭头函数 ★★
-
- JavaScript 的运行机制 ★★★
-
- 实现继承的几种方式 ★★
-
- 垃圾回收 ★
HTML/CSS 篇
-
- 行内元素/块级元素,非替换元素/替换元素 ★★★
-
- img 标签的 title 和 alt 属性 ★★
-
- meta 标签 ★★
-
- DOCTYPE 标签 ★★★
-
- script 标签的 defer 和 async ★
-
- W3C 盒模型和怪异盒模型 ★★★
-
- 水平垂直居中的方法 ★★★
-
- BFC ★★★
-
- 清除浮动的方法 ★★★
-
- position 属性 ★★★
-
- CSS 隐藏元素的方式 ★★★
-
- Flex布局 ★★★
-
- 双栏布局 三栏布局 ★★★
-
- 重排和重绘 ★★★
-
- CSS 选择器 ★★★
-
- CSS 动画 ★★
-
- CSS 实现三角形 ★★
-
- CSS Sprites ★★
-
- px rem em ★
-
- 伪类/伪元素 ★
Vue 篇
-
- 单页应用 (SPA) ★★★
-
- MVVM ★★★
-
- Vue 的响应式原理 (双向数据绑定) ★★★
-
- data 为什么是函数 ★★
-
- v-model 的原理 ★
-
- v-if 和 v-show的区别 ★★★
-
- computed、watch 和 method ★★
-
- Vue 的生命周期 ★★★
-
- 父子组件声明周期顺序 ★★
-
- Vue 组件间通信的方式 ★★★
-
- Vue 的单向数据流 ★
-
- keep-alive 组件 ★
-
- slot 插槽 ★
-
- Vue 检测数组和对象的变化 ★★
-
- 虚拟 DOM ★★★
-
- Vue 中的key 的作用 ★★
-
- nextTick 的原理 ★★
-
- Vuex ★★★
-
- vue-router 的两种模式 ★★
-
- vue-router 有哪几种导航钩子 ★
算法篇
-
- 防抖和节流 ★
-
- 深拷贝 ★★★
-
- 数组扁平化 ★★★
-
- 单例模式 ★★
-
- 数组去重 ★★★
-
- 手写 promise.all 和 promise.race ★★
-
- 模拟实现 new ★
-
- 实现 call/apply/bind ★
-
- 模拟Object.create( )的实现 ★
-
- 千分位分隔符 ★
-
- 实现三角形 ★★
-
- 实现三栏布局/双栏布局 ★★★