面试题

444 阅读3分钟

面试题

2022.07-2022.08 最近遇到的面试题
去除了项目问答部分 技术栈主要是react 不会有vue的问题

八股文
●React Fiber架构 简单讲下为何采用fiber fiber整个流程 (主要问概念和简单实现)
●fiber中如何获取一帧中的空闲时间,为何不用其他api呢
●值类型跟引用类型 在内存回收上的区别
●虚拟DOM是什么,优点是啥
●redux的实现机制,手写个简单的redux
●redux的中间件是如何实现的
●手写个发布订阅者
●跨域相关 啥都问 建议看得越细越好
●缓存相关 啥都问 建议看得越细越好
●CommonJS 跟ESModule 的区别
●Commonjs是如何实现变量隔离的
●requestAnimation跟setTimeout的区别
●webpack是如何实现热更新的
●webpack的打包流程
●webpack的相关优化做过哪些
●webpack是如何实现Tree Shaking的
●webpack异步加载原理
●虚拟列表实现原理,不定高如何处理
●微前端是如何实现不同应用间的js隔离的
●为啥不用iframe来实现微前端
●http1,2,,3的区别
●https加密算法的整个过程
●ES5继承的实现
●useEffect跟useLayoutEffect的区别
●flex=1代表什么
●js在V8引擎中是如何执行的
●react的diff跟vue的diff有啥区别

手写题及输出题
●手写节流
●实现add(1)(2)(3)=6
●var boy = new Man() boy.eat().sleep(1000).drink().sleep(2000)
●react hook 写一个倒计时60s组件
●数组拍平 多种实现 [[1],[2,3],[4]]拍成[1,2,3,4]
●手写react的useState跟useEffect
●手写instanceof
●手写Promise
●实现compose compose(x,y,z)(args)=z(y(z(args)))\

// 变量覆盖
const test=(user)=>{
  console.log(user.name)
  user.name='123'
  console.log(user.name)
  var user={name:'234'}
  console.log(user.name)
}
test({name:'012'})

// 输出题
let obj1 = { x: 1 };
let num1 = 1;
let array1 = [obj1, num1];
obj1 = { x: 2 };
num1 = 2;
console.log(array1[0].x, array1[1]); 
let array2 = array1;
obj1.x = 3;
array1[1] = 3;
console.log(array2[0].x, array2[1]);


//eventloop题目
setTimeout(()=>{
  console.log(7)
},0)
process.nextTick(()=>{console.log(6)});
Promise.resolve().then(()=>{
  console.log(5)
})
const fn1=()=>{
  return new Promise((resolve,reject)=>{
     console.log(1)
     resolve()
    console.log(2)
  })
}

async function fn2(){
  console.log(3)
  await fn1()
  console.log(4)
}

fn2()

// 输出题
var n = 1
function aa() {
  n = 100;
  console.log(n)
}
aa();
console.log(n)

// 输出题
foo()
var foo=function(){
  console.log(123)
}

开放性题目
这类题目并没有固定答案 建议看下一些前辈总结的项目文档,发掘一些可以吹牛逼的点 往死里吹
●项目的价值在哪里
●如何去评判项目做的好坏
●工作中的开发流程是咋样的,是否有优化的空间
●设计个安全键盘组件 场景设计
●项目中做了哪些优化\

算法题
leetcode.cn/problems/va… 有效括号
●数组转树,树转数组
●二叉树的前中后序遍历 有的要求用迭代去写
leetcode.cn/problems/lo… 最长回文串
leetcode.cn/problems/co… 组合总和
leetcode.cn/problems/pe… 全排列
leetcode-cn.com/problems/su… 子集
leetcode.cn/problems/lo… 最长公共子序列
// 后面的是一些最近面试中出现频率高的算法题
leetcode.cn/problems/ma… 最长重复子数组
leetcode.cn/problems/xx…查找第k大的数,O(n) 解法
leetcode.cn/problems/su… 连续子数组
leetcode.cn/problems/ga… 加油站
leetcode.cn/problems/be… 买卖股票