乐趣区

关于javascript:一周一个大厂复盘一下-拼多多-的面经发现不足逐一击破

前言

大家好,我是林三心,用最通俗易懂的话讲最难的知识点 是我的座右铭,根底是进阶的前提 是我的初心

一周一个大厂 是我新出的一个系列文章,大略的流程是这样的:

  • 我会收集一些大厂的面经,并试着去答复
  • 如果全都会则期待下一周从新一轮
  • 如果有不会的,则记录下来,并去克服它们,写成文章,而后下一轮

这个系列的目标就是:逼本人学习,写文章坚固新常识,且温习旧常识

拼多多

明天是 一周一个大厂  的第二期,明天咱们来复盘一下 拼多多 的面经,发现有余,并逐个击破他们吧!

一面

1、简历我的项目问询 – 细节

略。。。。。

2、垂直程度居中

  • 1、position: absolute + left: 50% + top: 50% + transform: translate(-50%, -50%)
  • 2、display: flex + justify-content: center + align-items: center
  • 3、display: table-cell + text-align: center + vertical-align: middle

    3、一个简略申请的 header 会有什么字段

  • Accept :浏览器反对的 MIME 类型
  • Accept-Encoding:gzip, deflate :浏览器反对的压缩编码是 gzip 和 deflate
  • Accept-Language:zh-cn,zh;q=0.5 :浏览器反对的语言是简体中文和中文,优先反对前者
  • Connection:keep-alive :客户端与服务端的连贯类型为长久连贯
  • Content-length :内容长度
  • Content-type :内容格局
  • Host :域名
  • Origin :拜访起源地址(protocal + host)
  • Referer :拜访起源地址(残缺)

    4、map、filter、reduce 都怎么用?

    能够看我的文章根底很好?总结了 38 个 ES6-ES12 的开发技巧,倒要看看你能拿几分?🐶 外面的 map、filter、reduce 局部

    5、Symbol 有理解过过吗?

    能够看我的文章根底很好?总结了 38 个 ES6-ES12 的开发技巧,倒要看看你能拿几分?🐶 外面的 Symbol 局部

    6、ES5 继承、ES6 类继承,静态方法?

  • ES5 继承:工作中遇到的 50 个 JavaScript 的根底知识点 里的 继承形式
  • ES6 类继承:根底很好?总结了 38 个 ES6-ES12 的开发技巧,倒要看看你能拿几分?🐶 里的 Class

    7、Promise 超时管制?

    利用 Promise.all

    const request = (delay) => (new Promise((resolve, reject) => {setTimeout(() => {resolve('数据')
      }, delay)
    })
    )
    
    const time = (delay) => (new Promise((resolve, rejct) => {setTimeout(() => {resolve('超时啦!')
      }, delay)
    })
    )
    
    const getData = (delay1, delay2) => (Promise.race([request(delay1), time(delay2)])
    )
    
    // 不超时状况
    getData(1000, 2000).then(res => console.log(res))
    // 超时状况
    getData(2000, 1000).then(res => console.log(res))

    8、DFS 找节点

    function depthFirstSearchNoRecursion (target) {const res = [];
      const stack = target.slice();
      // console.log(stack)
      while (stack.length > 0) {const node = stack.shift(); // 最上层节点出栈
          res.push(node.id);
          // 如果该节点有子节点,将子节点存入栈中,持续下一次循环
          const len = node.children && node.children.length;
          for (let i = len - 1; i >= 0; i--) {stack.unshift(node.children[i]);
          }
      }
      return res;
    }

    9、Node 有什么个性,适宜用来做什么?

    个性

  • 1、它是一个 Javascript 运行环境
  • 2、依赖于 Chrome V8 引擎进行代码解释
  • 3、事件驱动
  • 4、非阻塞 I /O
  • 5、轻量、可伸缩,适于实时数据交互利用
  • 6、单过程,单线程

    场景

  • 1、高并发(最重要的长处)
  • 2、适宜 I / O 密集型利用

10、midway 比照 egg 有什么劣势?

据我所知就是对 typescript 的反对十分好

11、typescript 有没有实际过?

实际过:

  • Vue3 + TS + Vite
  • React + TS + Vite

    12、平时有用什么设计模式吗?

    可能用了,然而没去留神,没去总结

    13、平时打包工具 – Webpack 相干

    举荐几篇文章吧:

  • 2020 年了, 再不会 webpack 敲得代码就不香了(近万字实战)
  • webpack 十连问你能接住几题

    14、你有没有哪些我没问到你想说的?

    15、缓存相干,cdn 缓存解决?

    CDN 缓存 浏览器 http 缓存 差不多,这一块还不精通,还得看看

    16、你有什么想问的?

    我帅吗?

二面

1、压力面,质疑观点?

2、拍平数组

要求

const flatten = (list, level = +Infinity) => {// ...};
const array = [1, [2, [3, 4, [5]], 3], -4];
const list1 = flatten(array);
const list2 = flatten(array, 2);
console.log(list1); // [1, 2, 3, 4, 5, 3, -4]
console.log(list2); // [1, 2, 3, -4]

解题

const flatten = (list, level = +Infinity) => {
  let res = list
  for (let i = 0; i < level; i++) {res = [].concat(...res)
    if (!res.some(item => Array.isArray(item))) break
  }
  return res
};

3、Promise

要求

const myPromise = val => Promise.resolve(val);
const delay = duration => {// ...};
myPromise(`hello`)
  .then(delay(1000))
  .then(val => console.log(val)); // 一秒之后输入 hello

解题

const delay = duration => {return (val) => (new Promise((resolve, reject) => {setTimeout(() => resolve(val), duration)
    })
  )
};

三面

1、我的项目细节询问

略。。。

2、Vue 源码有读吗 – 响应式原理,nextTick

能够看我的 Vue 源码解析专栏

3、最近有没有钻研什么新技术?

唱跳 rap

4、我的项目优化有哪些实际?

略。。。依据本人我的项目答复这几方面:

  • 1、业务方面优化
  • 2、申请方面优化
  • 3、打包方面优化
  • 4、架构方面优化

    5、V8 如何执行一段代码?

  • 第一步: Parser 将代码转转 AST(形象语法树)
  • 第二步: 解释器 Ignition 生成字节码
  • 第三步:执行

    6、72- 编辑间隔

    不会。。已收集到大厂算法题中

    7、226- 翻转二叉树

    不会。。已收集到大厂算法题中

    8、性能优化的实际?

    略。。。依据本人我的项目答复。。

    9、有其余想问的吗?

    我帅吗

结语

我是林三心,一个热心的前端菜鸟程序员。如果你上进,喜爱前端,想学习前端,那咱们能够交朋友,一起摸鱼哈哈,摸鱼群,加我请备注【思否】

退出移动版