一面(10.15 1h)
- 自我介绍
- js和ts的区别
- 如何判断数据类型(typeof、instanceof),它们的区别?
- instanceof为什么能判断(原型链),说说原型链
- 手写原型链继承(构造函数、原型链、组合继承、寄生继承、寄生组合继承),写着写着面试官说不用写了,让直接讲
- 手写查找对象里面某个字符的个数(包括大小写),包括key,value的所有字符(大部分时间都在写这个)
想法是把对象变成字符串,用JSON.stringify(),然后遍历,但是对象的值有function类型,会有问题。后面想到对象toString方法,试了一下也是不行
后面又想到递归一个个找,手写了一下,代码量太多了,写了一大半部分,只写了个大概思路,后面没写出来,后面面试官说只是看看思路,以及代码编写习惯 - 用node做过什么,怎么样跑起来一个服务器
- 描述一下http协议(直接说了下http的发展历程了,一顿嘴遁输出)
- 反问
问了下刚刚那个手写题有什么好的解决方法?面试官说可以对非对象使用toString方法,遇到对象在对其遍历即可。
面试官人非常好,不会的会提示你,全程一一解答,面试感觉很nice
二面(10.16 1h)
- 介绍项目经历,技术栈
- 项目经历相关问题
- react组件如何通信(props),后面面试官说了一下context
- 如何实现动画效果(animation),后面面试官说了一下requestAnimationFrame
- 实习项目难点
- 说说如何提升首屏加载速度,react框架本身有哪些点优化,面试官一直在引导我回答,太好了
- 如何实现图片懒加载,(通过scrollTop,offsetHeight)
- 面试官说了下图片占位符
- 强缓存、协商缓存
- cache-control有哪些取值(max-age、no-cache、no-store,s-max-age),面试官又说了一下private
- TS泛型,枚举,枚举加const和不加const的区别(不会),后面提了一下编译相关的说法
- 删掉数组某个下标的元素的方法(时间复杂度为O(1))
- websocket(不会)
- 图形学,几何学
如何判断你点击的区域在三角形内(算比例),面试官说了一下向量,射线(开始不太懂了) - 算法题:二维整数矩阵,每一行递增,每一列递增,如何找到某个整数是否在矩阵中出现(贪心,从右上,左下找)
- 一道简单场景题
- 反问
面试官很友好和善,感觉这次面试像是一场技术的交流,不会的都会解答出来,面试感觉一级棒
三面(10.17 1h)
- 自我介绍
- 手写题
同步异步输出问题
整数数组,只有一个数字出现一次,其余数字都出现两次,如何找到这个数字
智力题: 有一条无限向右延伸的小路,从某个位置开始,每向右走10米就会有一个洞。
不妨把这些洞从左至右依次编号为1, 2, 3, …。某天半夜,有只狐狸躲进了某个洞里。
接下来的每个白天,你都只允许检查一个洞(如果此时狐狸正好在这个洞里,它就被你抓住了);
每个夜晚,狐狸都会跳到它右边相邻的那个洞里。
你是否有办法可以保证在有限的时间里抓住狐狸?
- 实习经历
- useCallback和useMemo有什么用
- h5页面特别卡,如何分析原因(不会),面试官提了一下控制台的performance
- 某个加载了很多图片视频资源,如何优化(懒加载,http2.0,css sprite,视频倒是没想到咋优化)
- 说说实习项目中做的最好的部分
- 最近看到的前端方面新的技术(nest、vue3的pinia、http3)
- 反问
这次面试让我压力感觉比较大,面试官比较严肃,以为已经挂了。意外的是过了十几天hr电话oc了
#秋招##面经##前端面经#