面经(二)

192 阅读2分钟

一面

自我介绍

简单说了一下我任职过哪些公司,做了什么项目,技术栈有哪些

项目经历

问得非常非常非常的仔细,几乎每句话都在提问,所以要对自己写的项目经历不管是技术还是业务了解得深入才行。可以回答在做项目时用了什么技术,遇到了什么问题,怎么解决这些问题的...

八股文

下面这些问题也在问项目的时候,衍生出的问题

性能优化

性能优化问题的回答,主要分三块:

打包优化

打包优化我们可以从webpack的代码切割(split chunks)、清除无用代码(tree shaking)、部分包抽离打包为为dll、按需引用、代码压缩等等。

渲染优化

开启nginx的gizp、启用浏览器缓存、图片压缩、在开发时减少页面重绘与回流、页面懒加载

项目优化

项目发布至CDN

微前端(无界、iframe、qiankun)

React Fiber原理

Fiber原理解析

React Hooks原理

Hooks原理解析

宏任务与微任务

# 浏览器架构、单线程js、事件循环、消息队列、宏任务和微任务

旋转链表

一共有两种思路,第一个是先切割链表,然后再重新拼接,一个是先生成循环链表,然后再移动链表进行首位切割。最重要的是let add = n - k % n;取余这个步骤。

var rotateRight = function (head, k) {
    if (k === 0 || !head || !head.next) {
        return head;
    }
    let n = 1;
    let cur = head;
    while (cur.next) {
        cur = cur.next;
        n++;
    }
    let add = n - k % n;
    if (add === n) {
        return head;
    }
    cur.next = head;
    while (add) {
        cur = cur.next;
        add--;
    }
    const ret = cur.next;
    cur.next = null;
    return ret;
}; 

二面

项目相关提问

依然问得非常细节

前端性能优化

参看上面

原型链

H5和小程序的区别