刚面了一份remote前端

130 阅读2分钟

刚结束一场面试,base北京,上限25k,也支持远程,线上会议面试一个半小时,全程共享桌面敲代码。

自我介绍

...

实现一个防抖函数

function debounce(fn, ms) {
  let timer = null;
  return function () {
    if (timer) clearTimeout(timer);
    timer = setTimeout(() => {
      fn.apply(this, arguments);
    }, ms);
  };
}

// test
function testFn() {
  console.log("running");
}
const runFn = debounce(testFn, 1000);
runFn();
runFn();
runFn();

说一下 vue2 和 vue3 和 nuxt3 的区别

...

说一下 flat 和 flatMap

flatMap 平时没用过,简单了解过,flat和map的结合。

手写 flat

function myFlat(arr, depth = 1) {
  if (depth > 0) {
    return arr.reduce((acc, val) => {
      const value = Array.isArray(val) ? myFlat(val, depth - 1) : val;
      return acc.concat(value);
    }, []);
  } else {
    return arr.slice();
  }
}

// test
let testArr = [1, [2, 3], [4, [5]]];
let res = myFlat(testArr, 2);
console.log(res);

什么是Promise.withResolvers()

不知道,实话实话第一次听说这个api

什么是Promise.try()

不知道,手贱直接在共享桌面情况下搜了一下 mdn 解释,顺利的引出下一题

按照定义,能否自己实现一个 Promise.try()

function PromiseTry(fn) {
  return new Promise((resolve, reject) => {
    try {
      const result = fn();
      if (result && typeof result.then === "function") {
        result.then(resolve).catch(reject);
      } else {
        resolve(result);
      }
    } catch (err) {
      reject(err);
    }
  });
}

// test
const fn = () => Promise.resolve(3);
PromiseTry(fn).then((res) => {
  console.log(res);
});

代码执行顺序题

给出一段异步代码,写出输出结果

setTimeout(() => {
  console.log("A");
  Promise.resolve().then(() => {
    console.log("B");
  });
}, 1000);

Promise.resolve().then(() => {
  console.log("C");
});

new Promise((resolve) => {
  console.log("D");
  resolve("");
}).then(() => {
  console.log("E");
});

async function sum(a, b) {
  console.log("F");
}

async function asyncSum(a, b) {
  await Promise.resolve();
  console.log("G");
  return Promise.resolve(a + b);
}

sum(3, 4);
asyncSum(3, 4);

结果

// D F H C E G A B

http2 有什么优势

不知道

401,403 状态码

  • 401 unauthorized
  • 403 forbidden

聊了会项目中技术点


顺利通过一面,约了明天的二面。但是远程工作之前没接触过,不能缴纳本地五险一金,北京那太远也不可能要那的社保和公积金,有这方面经验的兄弟可以交流一下,薪酬方面都是采用怎样一种形式。