转个前端面试面经

原作链接:https://blog.csdn.net/allenliu6/article/details/62441325

科大讯飞武汉研发中心前端面试
很幸运遇到了一个人很好的面试官,问的问题也比较基础,不过自己可能还是基础不扎实吧,也有点紧张,问题回答的一般,主要自己会的都没有说的太好,希望下次面试会有进步,加油!
面试过程还真是步步紧逼的感觉,我自我介绍还没到一半就被打断了。。

  1. js如何实现面向对象
    答:面向对象有三大特性,封装,继承,多态还没说出口,他就问我如何继承

  2. 如何继承
    我说js主要基于原型链进行继承,原型链主要是基于一个母对象,然后层层分级,原型链最顶层是一个Object原型对象,接着还没说然后下一层分为function array object string number

  3. 问题变成了原型链是什么
    我就说了一堆 不过感觉没说好 只说了根据proto属行进行继承,形成一个链式结构,顶层是母对象,底层是自己创建的对象
    求答案

  4. 又问我基本类型有哪些
    我竟然把boolean给完全想不起来了

  5. 接着问我如何鉴别各大基本类型,如何鉴别null,如何鉴别array和function等
    我说用typeof instance鉴定
    其实最简单的应该是null === null判断
    array直接用isArray
    function直接用typeof

  6. 终于完整回答完一个问题了,又问我prototype和proto是什么关系
    我就说前者主要在new关键字中起作用,后者是原型链继承的属性

  7. 问我闭包的意义
    封装私有变量 保持不被回收 回答的有点乱不过这两点都说出来了

  8. 有接着问私有变量有什么意义
    避免全局变量污染和错误访问 没回答出安全和保持代码封装性,少出bug,访问便利,只要向上一个作用域

  9. 问我知道跨域吗
    说了 jsonp document.domain window.name
    若要详细解答请看我的跨域小结

    扫描二维码关注公众号,回复: 475366 查看本文章
  10. 问ajax你知道有几种请求
    get post

  11. http状态码
    说了 200 400 401 402 403 404然后终于被打断了

  12. 问我为何选择vue这个框架
    同学推荐
    网上评论
    看书

  13. 如何认识组件化开发
    答得不好,下面是自己的一点看法
    很多人说组件化就是html css js写在一起,并且追求面向对象高内聚、低耦合,实现可复用、拼接。
    我理解的组件化开发其实没那么复杂,具体来说,他可能只是一种具体功能的抽象化,如ajax,它也可能只是一个私人个性化定制的元素,当然其实浏览器已经给我们私人定制了input,checkbox等组件,包括样式以及各种接口和性质。当然实际开发中还是要考虑到实际的业务需求,可能跟开源、抽象形成可复用模块不同,实际业务需求中可能会牺牲掉一部分可扩展性来提高性能等,当然反过来说其实我们在选择了抽象、可复用后就增加了复杂度以及牺牲了性能,总之一切还是以项目需求为主,但开源模块就需要相对绝对的可扩展性,高度封装高内聚低耦合很大程度上决定了它的应用范围、未来高度和潜力。
    综合一下,说白了组件就是一个高度封装的可扩展的实现一定功能的代码块

  14. MVC和MVVM的区别是什么,如何理解MVVM机制
    这个问题回答不好,自己根据书在另一篇博客整理了答案

  15. 介绍vue vuex vue-router
    这块答得还可以吧
    主要先介绍了vue
    后基于vuex如何进行状态管理,vue-router的路由功能展开说了一下,顺便介绍了SPA

  16. 问看了什么书
    dom编程艺术
    js高程
    js设计模式与开发设计
    es6入门
    js设计模式
    vue权威指南

  17. 最后我问他对自己的建议和评价
    缺项目经验
    团队合作经验
    可以考虑转产品?ex me

最后又交流了一下前端技术发展,开发流程等,面试官人不错,虽然感觉他好像知道的也不多。。。

总结一下:
缺乏项目经验,联合后台开发经验
职业规划不明确
学习深度不够,跨域、性能以及对框架认识不够
代码量不够,基础不太扎实

猜你喜欢

转载自blog.csdn.net/hyo555/article/details/80209355