瀏覽器提供了同步和異步機制 JS是單線程的,提供了兩個隊列,一個是主隊列(放同步代碼),一個是異步隊列隊列池
。ajax
全部的代碼按順序執行,每一部分執行完後才能執行下面的代碼。promise
這塊代碼執行後,能夠去作其餘事情,等這塊代碼執行完後,再回來處理這裏的事項。瀏覽器
默認定時器間隔時間 5~10ms異步
異步回調地獄
所有寫成同步又會形成代碼阻塞async
promise處理
異步代碼當成同步來寫(能夠用async + await
解決)Promise是JS內置的構造函數函數
事件綁定:事件(行爲)發生時作些具體的事情(給事件綁定行爲)
綁定事件分爲DOM0級事件綁定 和 DOM2級事件綁定性能
DOM0級事件綁定問題:對同一元素,同一事件綁定多個行爲時,後面的行爲會覆蓋前面的行爲,最後只會執行最後一次綁定的行爲ui
oDiv.onclick = function(){alert(1)}
oDiv.onclick = null
oDiv.addEventListener('click',function(){alert(1)},false);
oDiv.removeEventListener('click',fn,false);
oDiv.attachEvent('onclick',fn);
,沒有作重複綁定的處理oDiv.detachEvent('onclick',fn);
DOM2級綁定
addEventListener
和attachEvent
IE沒有作重複綁定處理。DOM2級事件會對同一個元素綁定同一個事件綁定屢次時只綁定一次。
標準瀏覽器下事件綁定行爲中的this是綁定的元素 IE事件綁定行爲中是window
IE下事件綁定行爲執行的順序是亂的,而標準瀏覽器是按照前後綁定的順序執行this
瀏覽器記錄了事件相關的信息spa
window.event
接收e = e || window.event
e.clientX
:到可視窗口左邊的距離e.clientY
:到可視窗口上邊的距離e.pageY
:到文檔左邊的距離(包含滾動條卷出去的高度) e.clientY + document.documentElement,scrollTop||docment.body.scrollTop
e.target
: 事件源 事件綁定的元素e.preventDefault
阻止默認行爲 e.returnValue = false
e.stopPropagation
阻止冒泡 e.cancleBubble = true
當前元素事件被觸發後,其祖先元素的相同事件也會被觸發 由內往外(先本身後祖先)
當前元素事件被觸發後,其祖先元素的相同事件也會被觸發 由外往內(先本身後祖先)
oUl.get(0)
作計劃
執行計劃
取消計劃