1.說說前端中的事件流
HTML中與JavaScript互動是通過事件驅動來實作的,例如滑鼠點擊事件onclick等,可以想問檔或者檔案中的元素添加事件偵聽器來預定事件,事件流描述的是從頁面接收中接收事件的順序,DOM2級事件流包括下面幾個階段:事件捕獲階段,處于目標階段,件冒泡階段,
addEventListener:是DOM2級事件新增的指定事件處理程式的操作,這個方法接受三個引數:要處理的事件名、作為事件處理程式的函式和一個布林值,最后這個布林值為true,表示在捕獲階段處理事件程式;如果為false表示在冒泡階段呼叫事件處理程式,
2.如何讓事件先冒泡后捕獲
在DOM標準事件模型中,是先捕獲后冒泡,但如果要實作先冒泡后捕獲的效果,對于同一個事件,監聽捕獲和冒泡,分別對應相應的處理函式,監聽到捕獲事件,先暫緩處理,知道冒泡事件捕獲后在執行捕獲事件,
3.說一下事件委托
事件委托指的是不在事件發生地(直接dom)上設定監聽函式,而是在其父元素上設定監聽函式,通過事件冒泡父元素可以監聽到子元素上事件的觸發通過判斷時間發生元素DOM的型別來做出不同的回應,
好處:比較適合動態元素的系結,新添加的子元素也會有監聽函式,也可以有事件觸發機制,比如ul和li,在ul上設定監聽函式動態新增的li也可以有事件觸發機制,
4.說一下圖片的懶加載和預加載
預加載:提前加載圖片,當用戶需要查看時可以直接從本地快取中渲染,
懶加載:懶加載的主要目的時作為服務器前端的優化,減少請求數或延遲請求數,
兩種技術的本質:兩只行為時相反的,一個是提前加載,一個時遲緩甚至是不加載,懶加載對服務器前端有一定的緩解壓力的作用,預加載則會增加服務器前端壓力,
預加載:應用廣告彈窗;懶加載:電商圖片較多的,
5.Mouseover和mouseenter的區別
Mouseover:當滑鼠移入元素或其子元素時都會觸發事件,所以有一個重復觸發冒泡的程序,對應的移除事件是mouseout,
Mouseenter:當滑鼠移入元素本身(不包含元素的子元素)會觸發事件,也就是不會冒泡,對應的移除事件是mouseleave,
- Js的new運算子做了那些事情
New運算子新建了一個空物件,這個物件的原型指向建構式的prototype,執行建構式后回傳這個物件,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2139.html
標籤:其他
