面试2

作者: 绝尘kinoko | 来源:发表于2021-06-15 16:15 被阅读0次

长时间没更,一是单次面试被问倒的题不多,二是问倒的题不太好写。
这段时间有很多面试,总结来说有几点被问到不好答的:

  1. 性能优化


    性能优化

来源

  1. 项目亮点
    很难总结,特别都是偏业务轻技术的项目,只能挑一点解决时间比较长的点说。
  2. 设计模式应用
    一般只会问了解哪些设计模式,实际应用只有乌鸫三面问到了,没什么想法。


    来源菜鸟教程
  • 单例模式,vue store(Vue插件应该都算是)、webSocket、连接池、线程池。
  • 工厂模式,工厂类负责各类的生产,vue应用主要是简单工厂,比如switch封装。
  • 状态模式,由状态更改行为,流程/进度组件。
  • 策略模式,用以避免写过多的if else语句,定义一系列算法,使其可替换使用。vue用可以是component标签,用is属性配置不同策略的组件。后端就是普通的接口实现,且实体(策略)类都要对外暴露。
  • 外观模式,隐藏内部细节,vue中使用仅仅是组件设计的一种思路,比如嵌套组件steps/step等。
  • 模板方法模式

模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中某些步骤的具体实现

比如vue的slot,react的render props。

  • 享元模式,类似单例,在某些程度(根据属性)上共享对象。比如$message等全局提示信息框,分success、warning等状态,每个状态就是一个共享的对象。
  • 观察者模式,响应式数据
  • 订阅发布模式,类似观察者,但是多一个订阅中心的角色,如dom事件监听。
  • 适配器模式,兼容封装。
  • 装饰器模式,es7装饰器,java注解。
  • 代理模式,添加中间层,设置一些控制,代理的细节内部执行。感觉跟工厂类似,不过不是new的时候判断处理,而是访问类的时候。

结构型模式感觉都是一种组件的设计(解耦)思路,而不是真正实现某些功能需求。

  1. diff算法描述、时间复杂度
    第六项总结,时间复杂度由O(n³)优化成了O(n)。
  2. flutter框架(可忽略)
  3. 描述总结
    很多原理可能知道,但是描述不够精简,需要总结一下。
  • 防抖节流
    防抖和节流,都是控制事件触发频率的方法。
    防抖是当持续触发事件的时候,函数完全不执行,等最后一次触发结束的一段时间之后,再去执行。
    节流是有节制地执行,就是在一段时间内,只执行一次。
  • 响应式数据
    响应式数据是指当数据改变时,视图上该数据的引用位置也会变化。
    原理是采用数据劫持和观察者模式,数据劫持是利用Object.defineProperty监听属性的get/set方法,在get中收集依赖,在set中触发更新。更新重新渲染视图。
    关于更新:更新是异步的,更新动作会存在队列中,会用nextTick方法一次性清空队列。
  • diff算法
    diff算法是更新vnode的过程中,对比新老vnode的算法。算法只针对同级进行对比,用isSameVnode对比,判断tag和key是否一样;如果不一样直接替换,如果一样,就判断是否有子节点,如果只有一边有子节点或者都没有,是比较好处理的;
    如果都有子节点,则需要用双指针来进行对比,用isSameVnode来判断新老子节点的头头 尾尾 头尾 尾头 是否是同一节点 如果满足就进行相应的指针及dom移动;如果全都不相等,进行暴力对比,用老节点的key和index构建一个map,如果找到了,则移动老的子节点到前面去,如果找不到就直接插入;
    对新老的子节点进行递归patch处理,最后老的子节点有多的就删掉,新的子节点有多的就添加到相应的位置。总体思路就是对老节点,能复用的复用,多的删掉,新的能用老的就用老的,没有再添加。

相关文章

  • 面试

    面试 面试宝典 宝典2

  • this的指向的面试题

    面试题1 面试题2 面试题3 面试题4

  • 面试 - handle之看Looper详谈ThreadLocal

    面试handler系列:面试 - handle使用及原理(1) 面试 - handle之详谈Message(2) ...

  • 面试所涉及的问题

    面试题参考1 : 面试题 面试题参考2 : 内存管理 面试题参考3 :面试题 ...

  • 面试2

    TACIT服装设计公司楼下。 乔伊有些忐忑,钟陌森在一边看着乔伊,跟着忐忑。毕竟要面试成了,不仅实现乔伊的愿望,同...

  • 2 面试

    7月13日 下午乘车到广安人社局,在周围找附近的宾馆,找到一家,佳鑫商务酒店(130.00元)。在附近找了一家面馆...

  • 面试2

    面试了华南理工大学的历史环境保护与更新研究所 的项目实习生。【这名字长度】 感觉打开了新世界的大门,面试官姐姐讲的...

  • 面试2

    求出字符串中出现的字母的个数 使用正则去除首尾的空格 这个一开始想复杂了,开始是准备使用 ?= 这种方式做的,后来...

  • 面试(2)

    第四场面试 面试公司:外资企业 今天来到一家外资企业,到公司前,我买了一包口香糖,因为刚吃完麦当劳怕口里面有异味。...

  • (2) 面试

    java基本的数据类型有几种,无符号与有符号整型有什么区别?8种4类:逻辑类型:boolean;字符类型:char...

网友评论

      本文标题:面试2

      本文链接:https://www.haomeiwen.com/subject/bdjveltx.html