• 2020.5.15记一次阿里电话面试经历


    2020.5.15记一次阿里电话面试经过

    自我介绍,然后问了vue2的源码,有什么缺点,为啥存在缺点,vue2的官方有什么对策,还问了vue3使用Proxy为啥就修复了这些缺点,使用了Proxy,为啥就能拦截到这些行为?

    然后给了两道笔试题,是线上的那种,我平时这种题目很少涉及,然后突然一来吧,心里发毛,然后他又盯着看着,我就没发挥好,丢脸丢大了,不过自己确实是眼高手低,平时看到之后确实会,上手写确实费劲。。。,写下这篇文章,算是让自己长个记性吧,也是给自己敲个警钟!!!

     1. 请使用 JavaScript 实现名为 flatten(input) 的函数,可以将传入的 input 对象(Object 或者 Array)进行扁平化处理并返回结果。
    //  具体效果如下:
    //   const input = {
    //       a: 1,
    //       b: [ 1, 2, { c: true }, [ 3 ] ],
    //       d: { e: 2, f: 3 },
    //       g: null, 
    //   }
    
    //   function flatten(input) {
    //       // 需要实现的代码
    //   }
    
      flatten(input);
      // 返回
    //   {
    //       "a": 1,
    //       "b[0]": 1,
    //       "b[1]": 2,
    //       "b[2].c": true,
    //       "b[3][0]": 3,
    //       "d.e": 2,
    //       "d.f": 3,
    //       "g": null,  值为null或者undefined,丢弃
    //   };
    
    
    
    //  2. 实现一种自定义事件机制:
      class EventEmitter {
        /* 在此处填写实现 */
      }
      const emitter = new EventEmitter();
      const handler = function(evt) {
        console.log(1, evt);
      };
      emitter.on('foo', handler);
      emitter.once('foo', function(evt) {
        console.log(2, evt);
      });
      emitter.fire({ type: 'foo', value: 'hello' });
      emitter.fire({ type: 'foo', value: 'world' });
      emitter.off('foo', handler);
      emitter.fire({ type: 'foo', value: 'test' });
    //   实现如下方法:
    //   1. on,添加事件,可以给某个事件添加多个处理函数,这些函数可以被多次触发
    //   2. once,添加一次性事件,在触发过一次之后不再触发
    //   4. fire,触发特定事件
    //   5. off,移除特定的事件处理函数
    

      

  • 相关阅读:
    nginx不支持pathinfo模式解决方法
    php只保留两位小数
    分享图文到QQ空间
    android 使用信鸽推送通知栏不显示推送的通知?
    Editetext获取焦点后让输入软键盘中出现搜索按键
    Android EditText的使用过程中遇到的问题
    在线根据现有apk生成指定id的推广apk (已过时)
    @Validated和@Valid区别
    idea快捷键使用总结
    大概
  • 原文地址:https://www.cnblogs.com/liujiekun/p/12897148.html
Copyright © 2020-2023  润新知