*代表非必須
程式語言
HTML
-
盒模型
-
HTML5
- 語義化標籤
- canvas & svg
- 響應式 meta
CSS
-
選擇器
- 優先順序策略
- 偽類 / 偽元素
-
樣式表繼承
-
CSS3
- Flex & Grid
- filter
- 媒體查詢 & rem
- Transform & Animation
-
BFC
- 高度塌陷
- Margin塌陷
- Float清除
- position 巢狀 & 覆蓋
Javascript
-
ECMAScript
-
ES5
- 基本資料型別
- 函式級作用域
- 閉包
- 方法呼叫/函式呼叫
- 高階函式
- 模組載入
-
ES6+
-
塊級作用域
-
模板字串
-
Promise 微任務
-
Async 迭代器
-
Class
- 繼承
-
proxy
-
箭頭函式
- this 指向
-
-
原型鏈
- new 操作符
- bind / call / apply
- 深拷貝
-
-
BOM
-
DOM互動
-
事件代理
- 冒泡 / 捕獲
- 兩種監聽方法
-
-
表單管理
- 如何提交一個表單
-
-
History API
-
XHR API
-
非同步機制
-
Event Loop
- MacroTask / MicroTask
-
-
垃圾回收機制
- 標記清除 / 引用計數
WebAssembly *
計算機網路
七層OSI模型
HTTP
-
1.0 / 1.1 / 2.0
- 1.0
- 1.1 持久化
- 2.0 管線 / 服務端推送
-
狀態碼
-
快取控制策略
TCP
-
3次握手 / 4次揮手
-
滑動視窗
- 慢啟動 / 擁塞控制
-
可靠通訊
- TCP狀態機
UDP
WebSocket
資料結構
字串 / 陣列 / 連結串列
雜湊表 / 二叉樹 / 佇列 / 棧
演算法
BFS/DFS
動態規劃
位運算
排序
-
冒泡 / 選擇 / 快排 / 歸併
- 分散式排序 *
滑動視窗
數學
線性代數
-
矩陣
- 矩陣的秩
高等數學
- 鏈式求導
- 梯度 / 導數 / 偏導
編譯原理 *
伺服器基礎
Node *
PHP *
- CGI / Fast-CGI
- SetCookie
資料庫 *
-
SQL
-
時間函式
-
讀鎖和寫鎖
-
資料型別
- char / varchar 區別
-
命令呼叫
- drop, delete, truncate
-
事務
-
ELK *
程式與執行緒
- 互斥與死鎖
工程實踐
模組化
-
ES5
- CommonJS / AMD / CMD思想
-
ES6+
-
Class
- Polyfill
-
使用者鑑權
- OAuth
元件化
依賴構建
- Webpack
- Gulp *
版本管理
-
Git
- 分支機制
包管理
效能優化
-
base64編碼 / 精靈圖
-
懶載入 / 預載入
-
靜態資源的渲染阻塞
-
CSS 選擇器優化 / 表示式優化
-
CDN
-
快取控制
- ajax快取
- header欄位
主流框架(至少一個)
Vue
-
生命週期流程
-
HTML模板
-
元件通訊機制
-
高階元件
-
Router原理
-
VueX狀態管理
- Action / Mutation
-
雙向繫結原理
-
Virtual Dom
- Diff 原理 *
React
- 生命週期
- JSX
- Redux
- 元件狀態管理
瀏覽器
渲染機制
- DOM
- 重繪/迴流
- shadow DOM
瀏覽器快取
- Cookie
- Storage
同源策略
- 跨域訪問方法
SEO優化
- meta標籤
安全
-
TLS
- 非對稱加密原理 *
-
網路攻擊
- XSS
- CSRF
- 資料庫注入 *