好未来和贝壳面试题

2019-10-22  本文已影响0人  lixingyang

1、同步,异步,阻塞,非阻塞,分别解释一下。

 以烧水的案例来理解。

同步:使用普通水壶烧水。
异步:使用响水壶烧水。
阻塞:在烧水时不能做别的。
非阻塞:在烧水时可以去做别的事,通过轮询(epoll)查看水是否烧开。
2、cdn 是如何匹配最近的节点的?

 通过动态 dns 解析。

3、promise 实现一个 sleep。

async function test() {
  console.log('Hello');
  await sleep(1000);
  console.log('world!');
}

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

test();

4、实现一个 css 布局,每一列的第一个和最后一个元素,在最左最右侧,其他的元素均匀分布。
案例:第一行 4 个元素,第二列 2 个元素。

5、请分析以下代码执行结果

function test(a) {
  console.log(a);
  function a() {}
}
test(2);

6、请分析以下代码执行结果

console.log('start');
const interval = setInterval(() => {
  console.log('setInterval');
});

setTimeout(() => {
  console.log('setTimeout 1');
  Promise.resolve()
    .then(() => {
      console.log('promise 3');
    })
    .then(() => {
      console.log('promise 4');
    })
    .then(() => {
      setTimeout(() => {
        console.log('setTimeout 2');
        Promise.resolve()
          .then(() => {
            console.log('promise 5');
          })
          .then(() => {
            console.log('promise 6');
          })
          .then(() => {
            clearInterval(interval);
          });
      });
    });
}, 0);

Promise.resolve()
  .then(() => {
    console.log('promise 1');
  })
  .then(() => {
    console.log('promise 2');
  });
上一篇 下一篇

猜你喜欢

热点阅读