虾皮前端日常实习一面
自我介绍
介绍完项目,面试官摇了摇头,告诉我该怎么介绍项目(不是所有人都了解过目标检测和YOLO,应该先介绍下是干什么的,不然会让别人听的云里雾里)
八股环节
你的技术栈(vue,事后就没问过了,可能部门技术栈是react?)
CSS
你用过什么布局?flex有用过吗?flex: 1是什么意思?(√)
伪元素和伪类,具体什么区别?(√)
画三角形怎么实现?(1. 宽高为零设边框2. 伪元素3. clippath)(面试官:前两个本质是同一种,还有没有?lz说不知道了)
做一个动画,我们实现元素位移用什么比较好1. transform2. 定位3. 浮动。为什么?(transform,因为不会触发重绘和重排)
什么是重绘和重排(√)
transform不会触发重绘和重排的本质是?(不知道)
js
js数据类型,存放在哪?(√)
你刚刚提到了bigint和symbol,是什么?有使用过他们吗?(bigint大数相加,symobol做唯一标识但是没有使用过)
==和===有什么区别(类型转换)
刚刚说到了类型转换,那么类型转换有哪些呢?(隐式'1' + 1,显式Number,Array.from)(面试官:还有没有?楼主:不知道了)
给了一道笔试中lz做错的this指向题(lz分析后选对了)(面试官:你分析的挺好的,但是为什么你当时选错了?)(lz:啊?我当时为什么选的这么离谱?)
面试官给了简历指导(建议我不要写精通es6+特性,他这种从业十几年的也不敢写精通)(lz:好的)
场景题
现在要你设计一个埋点,要求是把每个用户使用网页的时间交给后端分析
(lz给出的方案:1.设置一个时间变量,发请求时请求拦截器每隔一段时间把这个发给后端,做一个节流)(面试官:用户还没使用结束为什么要发使用信息给后端呢?)
(lz:可能有用户一直挂机)(面试官:不用考虑这个,假设大家都使用的很频繁)
(lz:销毁前的钩子函数?)(面试官:用户把页面关掉了,钩子函数也发不出去)
(lz:关闭页面前弹个弹窗?自我否定了,用户体验太差了)(面试官:没关系,下去后好好想想)
代码题
后端给一个类似这样的数组,要求变成一个嵌套的对象结构,中国有children省,每个省有chidren市,市还有children...
data = [ {id: 1, pid: null, name: '中国'}, {id: 2, pid: 1, name: '广东省'}, {id: 3, pid: 1, name: '四川省'}, {id: 5, pid: 2, name: '深圳市'}, {id: 4, pid: 2, name: '中山市'}, {id: 8, pid: 1, name: '湖北省'}, ]
lz写法,先找根元素,然后递归实现填充children,面试官:思路是对的。
反问环节
因为lz在面试前几个小时拿到了网易有道的实习,所以没有什么好问的了
因为面试官指导了下楼主该怎么做自我介绍,简历怎么写,介绍场景题和代码题时还帮lz分析题干。所以郑重向面试官表达了感谢
总结
虾皮不愧是大厂,问的问题由浅入深,直到我不会为止
面试官人很不错,lz这么菜也没有被压力和歧视