前端面试题

一、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() //恢复以前的状态
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息