前端面試題

一、vue組件中爲何用data()函數,而不是data對象 

當時沒有去留意過這個卻別,問題的我也是一臉懵,當時想了一下爲啥要那麼作,而後說了一下本身的理由,面完以後百度了一下,回答的和百度到的意思差不對,只是我表達的不是很好。javascript

二、什麼狀況下要用nextTick,nexttick的做用是什麼,爲何要這樣用。 css

 爲何要這樣用nextTick沒有回答出來 前端

三、虛擬dom樹中的結構是什麼,而後說一下Diff算法vue

 VNode對象中的存的幾個東西我是徹底不記得了,只記得一個el,diff算法描述了一下,具體沒有說清楚。java

 四、怎麼去適配移動端的屏幕大小,像素,還有一些什麼忘記了,問了一下viewport css3

五、繼承,怎麼實現繼承,繼承的參數傳輸。web

設計到的即便本身對繼承這一塊的瞭解,考到組合繼承,用create.Object()實現繼承。 算法

六、instance Of函數,記得不是很清楚。編程

不知道繼承的對象是否能夠用instance Of判斷。 promise

七、href ,onclick,addEventListener的點擊後的一次打印的順序,講一下事件捕獲和事件冒泡,事件委託的實現原理 

<a href="javascript:console.log(1)" ></a>

 var a=document.querySeletor("a"); 

var divNode=document.querySeletor("div") 

a.onclick=function(){ console.log(2) } 

divNode.addEventListener("click",function(){ console.log(3) }) divNode.addEventListener("click",function(){ console.log(4) },true) a.addEventListener("click",function(){ console.log(5) })

八、promise和setTimeout打印順序

 var promise=new Promise((res,rej)=>{ console.log(1); res(); console.log(2) }) promise.then(()=>{ console.log(3) }) console.log(4) setTimeout(function(){ console.log(5) },0) 他們打印的順序: 回答的是:4,1,2,5,3 

九、實現一個物體拋物線效果的動畫 

利用js實現的,css3動畫不熟悉,繼而引出了setInterval和requestAnimalFrame的區別。 requestAnimalFrame的實現原理不是很清楚。 

十、強緩存和協商緩存,cache-control中的no store和no cache的區別 

十一、怎麼組件實現一個v-model 

十二、hashtable的實現 

1三、快排的實現,快排的各類變形以後的時間複雜度 兩道算法題都沒啥問題,也是比較簡單的兩道題。 

1四、web前端性能優化 

1五、作一道編程題,實現一個函數防抖功能 

let throttle=(fn,wait)=>{

}
function doSometing(param){
console.log(param)
}
var throttleDoSometing=throttle(doSometing,2000)

for(let i=0;i<10;i++){
throttleDoSometing(i);
}
throttleDoSometing.flush() //當即執行

throttleDoSometing.pause() //暫停執行

throttleDoSometing.resume() //恢復以前的狀態
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息