#### 1. 理解ECMAScript和JavaScript的關系
#### 2. 熟練運用ES5、ES6提供的語法規范
#### 3. 熟練掌握JavaScript提供的全局對象、全局函數、全局屬性
1. 全局對象:Date Math
2. 全局函數:decodeURI isNaN
3. 全局屬性:Infinity undefined
#### 4. 熟練使用map、reduce、filter等高階函數解決問題
#### 5. setTinterval需要注意的點,使用settimeout實現setInterval
#### 6. JavaScript提供的正則表達式API,可以使用正則表達式( 郵箱校驗、URL解析、去重等 )解決常見問題
#### 7. JavaScript異常處理的方式,統一的異常處理方案
1. try catch捕獲運行時錯誤
2. window.error捕獲運行時錯誤 & 異步錯誤
3. try catch window.error均無法捕獲語法錯誤
1. 異常上報方案:img動態創建標簽發送異常數據 || ajax發送異常數據
#### 8. Promise
1. Promise對象一共有三個狀態:pending,fulfilled,rejected,從pending狀態到任何一種狀態則不會再發生改變
2. Promise catch:捕獲三種異常:其對象的錯誤具有冒泡性質,會一直向后傳遞,直到catch捕獲
1. Promise 狀態未固定時,執行期間的錯誤
2. Promise reject 所拋出的錯誤
3. Promise 成功回調執行中的錯誤
3. Promise then:指定對象狀態變為 fulfilled 時的回調,then 的第二個參數也可以為捕獲錯誤的函數
4. Promise finally:不取決于對象的狀態,只要實例的成功或錯誤回調執行,則會執行finally
5. Promise all:將多個Promise實例,包裝返回成一個新的Promise實例,只有全部完成,或有一個發生錯誤時才會調用
6. Promise race:與 all 類似,接收一個對象集,返回第一個對象改變的結果
7. Promise resolve:將非對象轉換為 Promise 對象,參數接收:字符串,對象,空,Promise
8. Promise reject:將非對象轉換為 Promise 對象,返回reject的狀態
#### 9. AJAX
1. 設置請求頭:xhr.setRequestHeader( 頭名稱,值 )
1. xhr.setRequestHeader( ‘cookie’: "cookiename=cookievalue" )
2. xhr.setRequestHeader( ‘Content-Type’, ''application/x-www-form-encoder' )
2. 設置請求信息:xhr.open( method, url, boolAsync--default: true, 可選用戶名,可選用戶密碼 )
1. 如果是異步請求,則 xhr.onreadystatechange則會調用,同步則頁面處于假死,等待狀態
3. 獲取響應頭:xhr.getResponseHeader && xhr.getAllResponseHeader
4. 獲取響應數據:xhr.responseText || xhr.responseXML
5. 取消當前請求:xhr.abort()
6. 缺點:對SEO不友好,破壞了瀏覽器的前進后退記錄功能