【Shopee】前端岗-热乎的的虾皮2022秋招面经

超级无敌好的面试官,面试正式开始前还说他会用电脑做记录,可能有停顿,希望不要介意(我不介意!!!您慢慢记!!!多记点好的了)

  1. 个人介绍

  2. 介绍一下在实验室做了些什么

  3. 除了 flex做响应式布局,还有别的方案吗(说了 grid)

  4. 介绍一下你了解的flex

  5. css实现垂直水平居中,尽可能多的方案

  6. 问我更擅长哪一方面,他就问什么(太好了吧? 说了css和js)

  7. 元素隐藏的方法

    我: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;

  8. 什么是重绘和重排,怎么减少
    怎么引起重绘和重排
    答:样式改变触发重绘(这个不太对,所以面试官又接着问了) dom结构改变引起重排(应该没答完整所以继续追问了)
    单纯改变样式会引起重排吗,比如padding和margin
    答:会引起

  9. 哪些样式改变会引起重绘,哪些会引起重排
    答:调整字体大小、窗口大小、样式改变(我仿佛脑抽了用问题回答问题,其实我想说颜色这种样式的改变,被抓住了这一点,见13)会引起重排

  10. 所有样式改变都会引起重排吗
    答:改颜色只会引起重绘

  11. 缩小元素怎么不引起重排,比如10px * 10px 变5px * 5px;
    答:一紧张说了个translation??给面试官逗笑了55555
    面试官:translate / transform确实不影响真实占位不会重排,但是改位置和改尺寸会引起重排,因为要重新计算div的位置大小,
    只要不改div在整个布局的位置和尺寸就不引起重排,比如你刚说的改变字体大小和窗口大小就会引起重排。
    我主动补充了opacity:0和position: absolute/fixed脱标可以减少重排
    面试官:先绝对定位掉,等全部渲染完再(什么什么听不清了)减少重排的次数

  12. promise解决了什么问题(回调地狱)

  13. promise的方法
    说了then, catch, 面试官补充了all race

  14. 对算法和数据结构有信心吗(我没有哈哈哈)
    面试官是css组的(耶!躲过一劫! )但是说了需要去了解算法思想

  15. 考考正则,命名转小驼峰
    可能的输入:TestVal,test_val, TEST_VAL ,要求实现驼峰命名的输出
    面试时只考虑了后面两种,所以就直接先转小写然后匹配下划线

  16. css选择器考察
    (1)获取当前页面的所有 dom节点
    (2)获取当前页面的所有 p节点
    (3)获取当前页面带有data-click属性的节点,color设为白色
    伪类和伪元素,知道哪些,有什么区别自我介绍+项目介绍(超温柔的面试官就是问的问题一点也不温柔,会一直深挖?)

  17. 反问环节
    (1)看中面试者的那一方面(只要有一个方面够突出就行,了解的多并有专精能力)
    (2) 公司业务

二面

  1. 项目介绍
  2. 项目中身份校验用的token和sessionStorage
    问:为什么信息存在sessionStorage而不是别的地方
    问:sessionStorage和localStorage区别
    问:sessionStorage在同一个标签页跳转之后还在吗

  3. 为什么项目使用vue而不是react

  4. vue3.0了解吗?他的特性

  5. vue3.0的生命周期为什么变更

  6. vue3.0的proxy解决了什么问题

  7. 用ES5还是ES6

  8. ES6的promise的异步回调解决了什么问题

  9. 作用域和作用域链

  10. 箭头函数的特性,它的this指向在编译的时候决定还是运行的时候决定

  11. 写代码:new操作符干了什么

  12. 写代码:
    给定一个只包括 ‘(‘,’)’,'{‘,’}’,'[‘,’]’ 的字符串,判断字符串是否有效。
    有效字符串需满足:
    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。

  13. https是怎么实现,解决了什么问题

  14. 服务端发送给客户端的证书咋校验有效的

  15. 为什么既用了非对称加密又用了对称加密
  16. 为什么非对称加密更安全
  17. 对称加密不发送密钥的话会不会更安全,比如自己开发个app,两边都是自己的,服务端放一个客户端放一个,直接用密钥来对称加密,有啥问题
  18. 反问
    (1)看中面试者的那一方面(不方便说)
    (2)如何学习(框架的话,建议针对某个框架的原理解决的问题,相似的框架也差不多,从一个小点突破,横向对比)
    (3)公司业务
    受益匪浅的两次面试,许愿hr面