【Shopee】前端岗-热乎的的虾皮2022秋招面经
超级无敌好的面试官,面试正式开始前还说他会用电脑做记录,可能有停顿,希望不要介意(我不介意!!!您慢慢记!!!多记点好的了)
- 个人介绍
-
介绍一下在实验室做了些什么
-
除了 flex做响应式布局,还有别的方案吗(说了 grid)
-
介绍一下你了解的flex
-
css实现垂直水平居中,尽可能多的方案
-
问我更擅长哪一方面,他就问什么(太好了吧? 说了css和js)
-
元素隐藏的方法
我:display: none、visibility: hidden、opacity: 0, z-index,
面试官: position: absolute移到可视区域外、缩放 transform:scale(0),
面完后我搜到的:文本缩进属性text-indent: -999px、lip-path: polygon(0 0, 0 0, 0 0, 0 0)、height: 0; overflow: hidden; -
什么是重绘和重排,怎么减少
怎么引起重绘和重排
答:样式改变触发重绘(这个不太对,所以面试官又接着问了) dom结构改变引起重排(应该没答完整所以继续追问了)
单纯改变样式会引起重排吗,比如padding和margin
答:会引起 -
哪些样式改变会引起重绘,哪些会引起重排
答:调整字体大小、窗口大小、样式改变(我仿佛脑抽了用问题回答问题,其实我想说颜色这种样式的改变,被抓住了这一点,见13)会引起重排 -
所有样式改变都会引起重排吗
答:改颜色只会引起重绘 -
缩小元素怎么不引起重排,比如10px * 10px 变5px * 5px;
答:一紧张说了个translation??给面试官逗笑了55555
面试官:translate / transform确实不影响真实占位不会重排,但是改位置和改尺寸会引起重排,因为要重新计算div的位置大小,
只要不改div在整个布局的位置和尺寸就不引起重排,比如你刚说的改变字体大小和窗口大小就会引起重排。
我主动补充了opacity:0和position: absolute/fixed脱标可以减少重排
面试官:先绝对定位掉,等全部渲染完再(什么什么听不清了)减少重排的次数 -
promise解决了什么问题(回调地狱)
-
promise的方法
说了then, catch, 面试官补充了all race -
对算法和数据结构有信心吗(我没有哈哈哈)
面试官是css组的(耶!躲过一劫! )但是说了需要去了解算法思想 -
考考正则,命名转小驼峰
可能的输入:TestVal,test_val, TEST_VAL ,要求实现驼峰命名的输出
面试时只考虑了后面两种,所以就直接先转小写然后匹配下划线 -
css选择器考察
(1)获取当前页面的所有 dom节点
(2)获取当前页面的所有 p节点
(3)获取当前页面带有data-click属性的节点,color设为白色
伪类和伪元素,知道哪些,有什么区别自我介绍+项目介绍(超温柔的面试官就是问的问题一点也不温柔,会一直深挖?) -
反问环节
(1)看中面试者的那一方面(只要有一个方面够突出就行,了解的多并有专精能力)
(2) 公司业务
二面
- 项目介绍
-
项目中身份校验用的token和sessionStorage
问:为什么信息存在sessionStorage而不是别的地方
问:sessionStorage和localStorage区别
问:sessionStorage在同一个标签页跳转之后还在吗 -
为什么项目使用vue而不是react
-
vue3.0了解吗?他的特性
-
vue3.0的生命周期为什么变更
-
vue3.0的proxy解决了什么问题
-
用ES5还是ES6
-
ES6的promise的异步回调解决了什么问题
-
作用域和作用域链
-
箭头函数的特性,它的this指向在编译的时候决定还是运行的时候决定
-
写代码:new操作符干了什么
-
写代码:
给定一个只包括 ‘(‘,’)’,'{‘,’}’,'[‘,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。 -
https是怎么实现,解决了什么问题
-
服务端发送给客户端的证书咋校验有效的
- 为什么既用了非对称加密又用了对称加密
- 为什么非对称加密更安全
- 对称加密不发送密钥的话会不会更安全,比如自己开发个app,两边都是自己的,服务端放一个客户端放一个,直接用密钥来对称加密,有啥问题
- 反问
(1)看中面试者的那一方面(不方便说)
(2)如何学习(框架的话,建议针对某个框架的原理解决的问题,相似的框架也差不多,从一个小点突破,横向对比)
(3)公司业务
受益匪浅的两次面试,许愿hr面