前端面试总结
一面
自我介绍、学习路径、说说项目。
- Vue相关:diff算法、key作用、父子组件传值方式(提到了vuex)
- Vuex有哪些方法,(回答后),action为什么可以异步操作。
- url输入到实现
- weback loader,pulgins 举例
- js面向对象,详细讲讲继承有哪些,优缺点
- 宏任务/微任务详细讲解
- 虚拟DOM详细讲讲,什么情况下虚拟DOM性能不如DOM
- CSS块级元素、行内块元素、行内元素区别。
- 垂直居中的方式
- 重绘重排中,哪些CSS属性会分别触发?
- position属性,fixed和absolution的区别
- 讲讲flex原理
- 路由懒加载的实现原理与方式
- 垃圾回收机制,最常用的有哪些。
- 讲讲跨域,怎么实现jsonp?
- vue router 里link和a 的使用区别?
- cookie的作用域。
- Cookie有两个很重要的属性:Domain和Path,用来指示此Cookie的作用域:
- Domain告诉浏览器当前要添加的Cookie的域名归属,如果没有明确指明则默认为当前域名,比如通过访问www.vinceruan.info添加的Cookie的域名默认就是www.vinceruan.info,通过访 blog.vinceruan.info所生成的Cookie的域名就是blog.vinceruan.info
- Path告诉浏览器当前要添加的Cookie的路径归属,如果没有明确指明则默认为当前路径,比如通过访问www.vinceruan.info/java/hotspot.html添加的Cookie的默认路径就是/java/,通过blog.vinceruan.info/java/hotspot.html生成的Cookie的路径也是/java/
- 浏览器提交的Cookie需要满足以下两点:
1.当前域名或者父域名下的Cookie;
2.当前路径或父路径下的Cookie
要满足以上两个条件的Cookie才会被提交。
- js实现离开窗口时弹窗提示:
window.onbeforeunload = function(){return "Are you sure?";}
“”里的即为弹窗显示的内容。
- 垃圾回收机制了解吗?
- V8的垃圾回收策略主要是基于分代式垃圾回收机制,其根据对象的存活时间将内存的垃圾回收进行不同的分代,然后对不同的分代采用不同的垃圾回收算法
- V8的垃圾回收机制分为新生代和老生代。
新生代主要使用Scavenge进行管理,主要实现是Cheney算法,将内存平均分为两块,使用空间叫From,闲置空间叫To,新对象都先分配到From空间中,在空间快要占满时将存活对象复制到To空间中,然后清空From的内存空间,此时,调换From空间和To空间,继续进行内存分配,当满足那两个条件时对象会从新生代晋升到老生代。
老生代主要采用Mark-Sweep和Mark-Compact算法,一个是标记清除,一个是标记整理。两者不同的地方是,Mark-Sweep在垃圾回收后会产生碎片内存,而Mark-Compact在清除前会进行一步整理,将存活对象向一侧移动,随后清空边界的另一侧内存,这样空闲的内存都是连续的,但是带来的问题就是速度会慢一些。在V8中,老生代是Mark-Sweep和Mark-Compact两者共同进行管理的。
总结
努力!总结!不拿offer不罢休!