[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面試
- 前端筆試題
- 筆試題