当前位置: 首页 > 面试经验 >

小米 前端 实习 二面 23.07.14

优质
小牛编辑
91浏览
2023-07-14

小米 前端 实习 二面 23.07.14

  1. 自我介绍
  2. 说一下浏览器事件循环
  3. 是先执行宏任务还是微任务
  4. scirpt代码块属于哪种
  5. 为什么先执行微任务
  6. 用一句话或者几句话概括浏览器事件循环
  7. 来来来看一道题
setTimeout(() => {
    console.log(1);
}, 0);

new Promise((resolve) => {
    console.log(2);
    resolve();
    console.log(3);
}).then(() => {
    console.log(4);
});

const promise2 = new Promise(async (resolve) => {
    console.log(await resolve(5));
    console.log(6);
});

async function test() {
    console.log(7);
    console.log(await promise2);
    console.log(8);
}

test();
console.log(9);
  1. 别急还有

实现 Promise.retry,成功后 resolve 结果,失败后重试,尝试超过一定次数才真正的 reject

  1. 说一下实现思路
  2. 有没有可以改进的地方
  3. 看看这个this指向问题
  var obj = {
    foo() {
      this.a = 11111;
    },
    fun() {
      console.log(this.a);
    },
  };
  obj.foo();
  setTimeout(obj.fun, 0);
  1. 如何在不修改源码的情况下, 获取 obj
const o = (function () {
  const obj = {
    a: "a",
    b: "b",
  };
  return {
    get(c) {
      return obj[c];
    },
  };
})();


o.get('this')

// 下面是答案
Object.defineProperty(Object.prototype, 'this', {
  get(){
    return this
  }
})
  1. 如果可以修改代码,怎么防止用户通过这种手段获取this
  2. 算法自助餐,任选算法题。我随口说了句DFS呜呜
输入:candidates = [2,3,6,7], target = 7
输出:[[2,2,3],[7]]
解释:
2 和 3 可以形成一组候选,2 + 2 + 3 = 7 。注意 2 可以使用多次。
7 也是一个候选, 7 = 7 。
仅有这两种组合。

面试实录:https://sholaegi5k.feishu.cn/minutes/obcnco668qz6ghnk8k53b3nl

#我的实习求职记录##我的实习日记##小米##小米信息集散地##23届找工作求助阵地#
 类似资料: