[TOC]
### JavaScript
#### 基本数据类型
分为原始数据类型和对象数据类型。
原始数据类型分为:字符串,数值,布尔,`null`,`undefined`以及`Symbol`。
#### 入参为`5`,不使用`for`循环输出`[1,2,3,4,5]`
使用递归
```js
let show = function(param){
let arr = [];
return function(){
arr.unshift(param);
param--;
if(param>0){
arguments.callee()
}
return arr;
}()
}
console.log(show(5))
```
#### 原型链,对象,构造函数之间的联系
#### `DOM`事件绑定的几种方式
* 在`dom`元素中直接绑定;
* 在`javascript`中绑定;
* 绑定事件监听函数,`addEventListener` or `attachEvent`
#### DOM事件的target和currentTarget
#### requestAnimationFrame的兼容写法
```js
let raf = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
function(callback){
winow.setTimeout(callback,1000/60);
}
})()
```
### CSS
#### 盒模型(I)
#### `box-sizing`的应用场景
#### 弹性`flex`布局(I)
#### 未知宽高的元素怎么上下左右垂直居中
* `flex`布局
* `transform:translate`
#### `postcss`(II)
### HTTP
#### http协议常用的状态码
### webpack
#### `webpack`入口文件怎么配置,多个入口文件怎么分割
#### `babel`插件
* babel-core
* babel-pollyfill
### vue
#### `vue`实现双向绑定的原理(II)
> 发布订阅的设计模式
`vue.js` 是采用数据劫持结合发布者-订阅者模式的方式,通过`Object.defineProperty()`来劫持各个属性的`setter`,`getter`,在数据变动时发布消息给订阅者,触发相应的监听回调。
具体步骤:
第一步:需要observe的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter和getter
这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化
第二步:compile解析模板指令,将模板中的变量替换成数据,然后初始化渲染页面视图,并将每个指令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变动,收到通知,更新视图
第三步:Watcher订阅者是Observer和Compile之间通信的桥梁,主要做的事情是:
1、在自身实例化时往属性订阅器(dep)里面添加自己
2、自身必须有一个update()方法
3、待属性变动dep.notice()通知时,能调用自身的update()方法,并触发Compile中绑定的回调,则功成身退
#### `vue`常用的指令(I)
#### `vue`的生命周期
* 创建前/后
* 载入前/后
* 更新前/后
* 销毁前/后
### 字符串拷贝N次
`xxxx.repeat(n)`
- 前端
- C1-Javascript
- H5图片分块和断点续传
- JavascriptPatterns[Stoyanstefanov]
- macotask和microtask
- 前端代码生成器
- 跨域
- 页面回到顶部滚动按钮实现
- C2-CSS
- 浏览器的一些单位
- 盒模型
- 移动端判断横竖屏
- C3-框架
- ReactNative
- 开发环境搭建(安卓篇)
- Vue
- vue+pdfjs使用
- vue+typescript使用实践
- vue+webpack3.x集成typescript
- Vue源码3
- vue源码分析1
- vue源码分析2
- vue笔记
- C4-工具
- git
- Gitlab-CICD
- mock规则
- vscode-settings
- webpack自定义命令,切换代理地址
- 正则表达式
- 深入浅出webpack
- C5-Node
- express
- express源码阅读
- nightmare使用指南
- 爬虫1.0
- C6-微信
- 微信
- C7-Canvas
- 基础API
- 前端随笔笔记
- 后端
- C1-Java
- shiro
- C2-Linux
- ffmpeg
- ITerm
- Linux
- MongoDB安装
- MySql安装
- Ngnix反向代理
- 常见错误
- 备忘
- mac
- 备忘-Work
- 备忘Link
- 服务器资源
- 教程
- Hexo个人博客搭建笔录
- 文档
- CSS编码规范
- 前端编码规范
- 随笔
- 整理
- 正则
- 链接收藏
- 面试
- CodeWars题库
- CodeWars题库(二)
- Java社招面试题
- Java面试
- Web面试
- 前端笔试题
- 笔试题