记录下最近的面试记录

511 阅读2分钟

多页面工程通讯:(面试官描述多工程项目下非兄弟组件传值)

  • 答:vuex
  • 面试官:还有吗
  • 答:这个场景下只能想到vuex

结束后思考:

  • SharedWorker
  • BroadCast Channel
  • Service Worker
  • localStorage的StorageEvent事件

多页面工程打包指定项目

  • 答:父子工程项目下,配置多项目工程形式,以多个main.js为入口文件指定打包
  • 面试官:嗯,但好像希望听到的是不是这个答案

怎么实现强制缓存与协商缓存

  • 答:ng配置或者后台服务器轮训
  • 面试官:还有吗
  • 答:无

结束后思考:

Cache-Control

//设置缓存如下:

<meta http-equiv="Cache-Control" content="max-age=7200" />

promise 原型链上的方法

  • 答:.all()算吗
  • 面试官:这是实例方法
  • 答:想不起来了

结束后思考:

Promise构造函数的原型上实现了then,catch,finally方法 后查询文档,发现日常用的then,catch,finally都是原型链上的方法,我以为这都是实例方法,就并没有说出来,当时还想怎么没听过原型链方法,基础知识太欠缺了,,,

proxy怎么监听未知层级对象变化

  • 答:get set
  • 面试官: 详细说说
  • 答:只知道有get和set供使用,具体使用方法记不清

结束后思考:

function createLogger(obj) {
      //遍历obj的属性
      for (let key in obj) {
        //属性值为对象的则再次转为proxy对象
        if (typeof obj[key] === 'object' && obj[key] !== null) {
          obj[key] = createLogger(obj[key])
        }
      }
      const proxy = new Proxy(obj, {
        get: function(target, property) {
          return Reflect.get(target, property)
        },
        set: function (target, key, value) {
          console.log(`修改了 ${key} 的值,新的值为 ${value}`);
          return Reflect.set(target, key, value)
        }
      });

      return proxy;
    }

最后

  • 面试官:好的,我的问题问完了,你有没有问题问我

  • 答:想请问招此职位人员是做业务还是攻坚技术方面

  • 面试官:业务,但是认为业务和技术是一体的

  • 答:好的(感觉凉凉了)

  • 面试官:面试结束

总结 :要知其然知其所以然,准备还不够充分,好久没面试过这么硬的技术面了,不灰心,继续成长

-----------分割线-----------

10.10 更新

  • 怎么实现0.5px的线
  • 三个div水平垂直方向居中
  • 什么是闭包,为了解决什么问题
  • 前端怎么处理大数据量数据
  • 前端怎么展示未知层级的树状结构
  • vue的非父子组件传值
  • vue的父传子参数在子组件里打印为空,怎么排查问题
  • vue的子传父方法的值为子组件this.方法,父组件能接受到吗?能执行此方法吗?
  • vue里的mixins使用场景
  • vue和mixins的区别