box-sizing: content-box; //標準盒模型 box-sizing: border-box; //ie盒模型
NaN結果是number,null結果是object,函數結果是function。前端
ES5的繼承實質上是先建立子類的實例對象,而後再將父類的方法添加到this上。
es6經過class定義類,類經過extends關鍵字實現繼承,子類必須在constructor方法中調用super方法。es6
使用get和set實現。ajax
最⼤的特色就是能夠控制函數的執⾏。
特色:
Generator 函數神奇之一:g()並不執行g函數
g()並不會執行g函數,返回的也不是函數運行結果,而是一個指向內部狀態的指針對象,也就是迭代器對象(Iterator Object)。
分段執行
yield:函數體內部使用yield語句,定義不一樣的內部狀態,控制產出。promise
減小dom的操做次數
選擇dom節點時儘量使用querySelector(),querySelectorAll()緩存
每次調⽤ then 以後返回的都是⼀個 Promise,而且是⼀個全新的 Promise,緣由也是由於狀態不可變。安全
promise裏面接收一個參數,參數是函數。這個函數裏面傳入兩個參數:resolve和reject,resolve是異步操做執行成功的回調函數,reject是異步操做執行失敗的回調函數,resolve是將Promise的狀態置爲fullfiled,reject是將Promise的狀態置爲rejected。
then方法是一個鏈式操做,用來分別指定成功和失敗的回調函數,then方法能夠接受兩個參數,第一個對應resolve狀態的回調,第二個對應reject狀態的回調。Promise對象除了then方法,還有一個catch方法,用於指定發生錯誤時的回調函數,其實它和then的第二個參數同樣,用來指定reject的回調。
區別:then 的第一個函數出錯了,後面的catch能夠捕獲,寫到then的第二個函數則捕獲不到。數據結構
a is not defined。閉包
addHeader(name, value);dom
不一樣的任務源會被分配到不一樣的 Task 隊列中,任務源能夠分爲 微任務(microtask) 和 宏任務(macrotask)。在 ES6 規範中,microtask 稱爲 jobs,macrotask 稱爲 task。
Event Loop 執⾏順序以下所示:異步
宏任務的優先級高於微任務。
宏任務:setTimeout、setInterval、setImmediate、requestAnimationFrame。
微任務:Promise.then catch finally、process.nextTick
函數提高的優先級更高。
DNS是用來作域名解析的,當你上網輸入網址後,把它轉換成IP。
打開控制檯看報錯,多是資源加載失敗,或者請求異常。